2017-02-28 6 views
0

매번 루프를 통해 피연산자를 전환 할 수 있기를 원합니다. 그래서 처음으로 칼럼을 추가하고 싶습니다. 루프를 두 번째로 나는 컬럼에서 빼고 싶습니다. 세 번째로 나는 열에서 빼고 행에서 빼고 싶습니다. 네 번째로 저는 컬럼에서 빼고 행에 추가하고 싶습니다. 이 대신 몇 가지를 달성하기 위해 하나의 루프를 작성할 수 있습니까? 도와 주셔서 감사합니다!루프 피연산자 스위치 파이썬 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] '를 다른 세 번 사용합니다. – 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이 아닙니다. –