2017-11-21 8 views
0

私は三目並べのゲームを構築しています、と私はこのようになり垂直方向と水平方向のチェックを持っている:チックタックトー対角線チェック

def check_win_left_vert (board): 
    win = True 
    x = 0 
    for y in range (2): 
     if board[y][x] != board[y+1][x]: 
      win = False 
    return win 

それはYをインクリメントすることでボードを覗きます軸;私はx軸についても同じ方法を使用します。どのように私は斜めの軸のためにこれを行うだろうか?私は両方を増やすだろうか?

+0

に同じループチェックでチェックするための唯一の8行がありますが、それは、関連するインデックスのタプルのリストを作成し、その反復処理するためにはるかに簡単ですボードの値を引き出すには: 'XYZ = [(0,1,2)、(3,4,5)、...]; XYZのx、y、zについて:if board [x] == board [y] == board [z]:... '。 – ekhumoro

答えて

0

あなたは対角1、および「2反転」それ他の上の両方に同じ変数を使用します。あなたは、境界条件に注意する必要があり

for x in range(2): 
    if board[x][x] ... 

for x in range(2): 
    if board[x][2-x] ... 

注意。ボードの右端のスペースをチェックしようとしているので、水平コードをまだテストしていないことを強く疑う。それを修正する範囲を減らしてください。あなたが確認する必要があり

0

は対角線場合

if board[y][y] != board[y+1][y+1] or board[2-y][y] != board[1-y][1+y]: 
     win = False 
    if win == False: 
     break; 
関連する問題