2017-02-28 8 views
0

Je veux être capable de changer d'opérande à chaque fois grâce à une boucle. Donc, la première fois, j'aimerais ajouter une colonne. La deuxième fois à travers la boucle, je voudrais soustraire de la colonne. La troisième fois je voudrais soustraire de la colonne et soustraire de la ligne. La quatrième fois je voudrais soustraire de la colonne et ajouter à la ligne. Est-ce possible d'écrire une boucle pour accomplir ceci au lieu de plusieurs? Merci pour l'aide!Commuter les opérandes dans les boucles 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

Qu'est-ce que opérande est en train de changer? Il semble y avoir des incohérences dans votre code. Plus précisément, vous utilisez 'game [column + x]' la première fois, mais 'game [column-x]' les trois autres fois. – Peter

+0

Vous montrez trois changements d'opérandes apparents ici; veuillez clarifier le problème que vous essayez de résoudre. – Prune

+0

juste mis à jour la question. Espérons que c'est plus clair maintenant –

Répondre

0

J'ai créé une liste des opérandes et réitérait à travers le list.That travaillé

1

Par votre code, je suppose que vous voulez marquer chaque cellule 'W' avec 'B'. Cela devrait être suffisant:

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

'pour x, y dans les voisins:' –

+0

@MadPhysicist en effet! Actualisé. –

+0

OP semble avoir une grille 17x17 dans la question, pas un 3x3 ... –