이 튜토리얼에서는 Python을 사용하여 tic-tac-toe 게임을 만드는 방법을 보여 드리겠습니다. 여기에는 함수, 목록, if 문, while 루프, for 루프, 오류 처리 등이 포함됩니다.
먼저 두 가지 함수를 만듭니다. 첫 번째 함수는 tic-tac-toe 게임의 배경 템플릿을 인쇄합니다:
def print_board(): for i in range(0,3): for j in range(0,3): print map[2-i][j], if j != 2: print "|", print ""
여기서는 두 개의 for 루프를 사용하여 map
이라는 목록 변수를 탐색합니다. 이 변수는 각 위치에 대한 정보를 보유하는 2차원 목록입니다.
(나중에 살펴보겠지만) 키패드의 숫자에 따라 위치를 비교할 것이므로 첫 번째 값을 (2-i)
로 설정한 다음 "|"
을 사용하여 위치를 나누려고 합니다. 인쇄되면 "|"
을 인쇄하여 동일한 줄에 인쇄되도록 여기서 쉼표 print map[2-i][j],
를 사용합니다.
이제 이 기능은 게임의 배경을 인쇄할 수 있습니다.
| | | | | |
X | X | O | X | O | O | X
X | X | X X | X | X X | X | X
다음으로, 각 라운드 후에 게임이 끝났는지 확인하는 check_done()
함수를 만듭니다. 게임이 끝났다면 True를 반환하고 메시지를 인쇄합니다.
먼저 가로 및 세로 방향에 동일하고 비어 있지 않은 세 개의 행이 있는지 확인합니다. 따라서 세 개의 연속된 빈 행이 적합한 것으로 간주되지 않습니다. 두 번째로 동일한 방식으로 대각선을 확인합니다.
이 8줄 중 하나라도 조건을 만족하면 게임이 종료되고 "Won!!!"이 출력되며 동시에 True
변수에 주의하세요. 지금 어느 쪽이 체스를 두고 있는지 확인하고 최종적으로 "Xwon!!" 또는 "Owon!!"이 나오는 메시지를 표시합니다. turn
을 반환합니다. True
으로 돌아갑니다. False
def check_done(): for i in range(0,3): if map[i][0] == map[i][1] == map[i][2] != " " \ or map[0][i] == map[1][i] == map[2][i] != " ": print turn, "won!!!" return True if map[0][0] == map[1][1] == map[2][2] != " " \ or map[0][2] == map[1][1] == map[2][0] != " ": print turn, "won!!!" return True if " " not in map[0] and " " not in map[1] and " " not in map[2]: print "Draw" return True return False이 세 가지 변수가 무엇을 의미하는지 이미 설명했습니다. 잊으셨다면 아래를 살펴보세요.
turn = "X" map = [[" "," "," "], [" "," "," "], [" "," "," "]] done = False내부에는 while 루프가 있습니다. done이 True가 될 때까지 누구의 차례인지 출력합니다. 그런 다음
이라는 변수를 만들어 플레이어가 이동했는지 확인합니다. 그렇지 않은 경우 다음 루프를 입력합니다. moved
while done != True: print_board() print turn, "'s turn" print moved = False while moved != True:다음:
아아아아
우리는 플레이어가 숫자를 입력하고 그 숫자가 1에서 9 사이인지 확인하기를 원합니다. 동시에 오류 처리를 추가해야 합니다. 예를 들어 플레이어가 "Hello"를 입력하면 프로그램이 종료될 수 없습니다. . 이제 그가 이 조치를 취할 수 있는지 확인해야 합니다.print "Please select position by typing in a number between 1 and 9, see below for which number that is which position..." print "7|8|9" print "4|5|6" print "1|2|3" print하하, 눈을 크게 뜨고 먼저 X와 Y의 값을 얻은 다음 이를 사용하여 그가 배치하려는 위치가 비어 있는지 확인합니다. 다음으로 X와 Y가 어떻게 작동하는지 설명하겠습니다. >
……
아래에서 수학을 하면 바로 결론을 내릴 수 있습니다. (젠장, Hexo의 기본 템플릿은 표를 표시하지 않습니다. mou에서 편집했을 때 아래 템플릿보다 훨씬 더 예뻤습니다!):
aha,这个位置和我们键入的是一样的!
print "7|8|9" print "4|5|6" print "1|2|3"
现在我们完成大部分工作了,但是还有几行代码:
map[Y][X] = turn moved = True done = check_done() if done == False: if turn == "X": turn = "O" else: turn = "X" except: print "You need to add a numeric value"
嗯,我们给moved变量复制为True,并检查是否结束了,木有结束的话变换角色换下一个人走。
OK,差不多结束了,假如你只是想Ctrl+C 和 Ctrl+V的话,下面是全部的代码,希望你学到了点什么,( ^_^ )/~~拜拜。
def print_board(): for i in range(0,3): for j in range(0,3): print map[2-i][j], if j != 2: print "|", print "" def check_done(): for i in range(0,3): if map[i][0] == map[i][1] == map[i][2] != " " \ or map[0][i] == map[1][i] == map[2][i] != " ": print turn, "won!!!" return True if map[0][0] == map[1][1] == map[2][2] != " " \ or map[0][2] == map[1][1] == map[2][0] != " ": print turn, "won!!!" return True if " " not in map[0] and " " not in map[1] and " " not in map[2]: print "Draw" return True return False turn = "X" map = [[" "," "," "], [" "," "," "], [" "," "," "]] done = False while done != True: print_board() print turn, "'s turn" print moved = False while moved != True: print "Please select position by typing in a number between 1 and 9, see below for which number that is which position..." print "7|8|9" print "4|5|6" print "1|2|3" print try: pos = input("Select: ") if pos <=9 and pos >=1: Y = pos/3 X = pos%3 if X != 0: X -=1 else: X = 2 Y -=1 if map[Y][X] == " ": map[Y][X] = turn moved = True done = check_done() if done == False: if turn == "X": turn = "O" else: turn = "X" except: print "You need to add a numeric value"
原文出处: Vswe
위 내용은 Python으로 간단한 tic-tac-toe 게임 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!