2017-02-28 7 views
0

ループごとにオペランドを切り替えることができるようにしたい。だから私は初めてカラムを追加したいと思っています。 2回目のループで、私は列から引きます。 3回目は、列から減算して行から減算したいと思います。 4回目は、カラムから減算して行に追加したいと思います。これはいくつかの代わりにこれを達成するために1つのループを書くことが可能ですか?助けてくれてありがとう!ループ内のオペランドを切り替えるPython 3

#add    
for x in range(1,8): 
    if game[column+x][row] == 'W': 
     game[column+x][row] = 'B' 
    elif game[column+x][row] == 'B': 
     return  
#subtract  
for x in range(1,8): 
    if game[column-x][row] == 'W': 
     game[column-x][row] = 'B' 
    elif game[column-x][row] == 'B': 
     return 
#etc.... 
for x in range(1,8): 
    if game[column-x][row-x] == 'W': 
     game[column-x][row-x] = 'B' 
    elif game[column-x][row-x] == 'B': 
     return 

for x in range(1,8): 
    if game[column-x][row+x] == 'W': 
     game[column-x][row+x] = 'B' 
    elif game[column-x][row+x] == 'B': 
     return 
+0

を働いていましたか?あなたのコードには矛盾があるようです。具体的には、最初に 'game [column + x]'を使っていますが、 'game [column-x]'をもう3回使っています。 – Peter

+0

ここには3つの明らかなオペランドの変更が表示されます。あなたが解決しようとしている問題を明確にしてください。 – Prune

+0

が質問を更新しました。うまくいけば、今より明らかになった –

答えて

0

私は、オペランドのリストを作成し、list.Thatを通じて反復変化している何オペランド

1

あなたのコードでは、「W」の周囲のセルに「B」を付けたいと思っています。これは十分なはずです:

neighbours = [ 
    (-1, -1), 
    (-1, 0), 
    (-1, 1), 
    (0, -1), 
    (0, 0), 
    (0, 1), 
    (1, -1), 
    (1, 0), 
    (1, 1) 
    ] 

game = [ 
    ['W', 'W', 'E'], 
    ['' , '', ''], 
    ['' , '', ''] 
] 

print game 

row, col = 1, 1 # center of the game's table 

for x, y in neighbours: 
    if game[row + x][col + y] == 'W': 
     game[row + x][col + y] = 'B' 

print game 
+2

'x、y近隣:' –

+0

@MadPhysicist本当に!更新しました。 –

+0

OPは質問に17x17のグリッドを持っているようですが、3x3ではありません。 –

関連する問題