2013-11-29 3 views
-1

왜 컴퓨터가 x가되지 않습니까? 루프를 거쳐 목록에있는 것이고 선택되지 않은 것을 발견하면 x 값을 컴퓨터에 할당해서는 안됩니까? 먼저함수 내의 루프

def ComputerMove(gameboard): 
    for x in list: 
     if x not in picked and x in list: 
      computer = x 



list = ("b2", "a1", "c3", "a3", "c1", "a2", "b3", "b1", "c2") 

gameboard = {0:' ', 1:' ', 2:' ', 
     3:' ', 4:' ', 5:' ', 
     6:' ', 7:' ', 8:' ', 
     } 
picked = ("b2", "a1", "c3", "a3") 
ComputerMove(gameboard) 
+0

ComputerMove는 무엇을 반환해야합니까? – JackMc

+0

그냥 함수를 다시 호출하므로 실제로 실행할 수 있습니다 – user2864064

답변

2

, list는 변수 이름으로 사용할 수 없도록 reseved 유형 /입니다. 둘째, 가지고있는 것은 튜플이 아니라 목록입니다. 그래서, 나는 그들을 변환하고이 코드는 작동하는 것 같습니다 :

def ComputerMove(gameboard): 
    for x in l: 
     if x not in picked: 
      computer = x 
      return computer # not sure what do you want to do with this value? 



l = ["b2", "a1", "c3", "a3", "c1", "a2", "b3", "b1", "c2"] 

gameboard = {0:' ', 1:' ', 2:' ', 
     3:' ', 4:' ', 5:' ', 
     6:' ', 7:' ', 8:' ', 
     } 
picked = ["b2", "a1", "c3", "a3"] 
ComputerMove(gameboard) 
>>c1 
+0

예약 된 키워드를 변수 이름으로 사용할 수 있지만 권장하지 않습니다. –

+0

@SteinarLima 권장하지 않는 IMO입니다. 겹쳐 쓰는 유형과 키워드는 파이썬에서 가장 큰 no-no입니다. 그래서 나는 종종 허용되지 않는 초보자들에게 말합니다. 통역사가 당신을 그렇게하게 할 것이기 때문에 그것이 훌륭하다는 것을 의미하지는 않습니다. 예를 들어 Py 2.x에서는 True, False = False, True이면 누구나 정상적으로 할 수 있습니까? =) – rdodev