English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
这是非常有趣的游戏。在这个游戏中不需要玩家,这是一个自动游戏。
在这里,我们使用了两个Python模块numpy和random。在此游戏中,棋盘上的标记会自动放置,而不是要求用户在棋盘上标记,并且除非玩家获胜,否则它会在每回合之后显示棋盘。如果游戏平局,则返回-1。
import numpy as np import random from time import sleep # first creates an empty board def my_create_board(): return(np.array([[0, 0, 0], [0, 0, 0], [0, 0, 0]])) # Check for empty places on board def my_possibilities(board): l = [] for i in range(len(board)): for j in range(len(board)): if board[i][j] == 0: l.append((i, j)) return(l) # Select a random place for the player def my_random_place(board, my_player): selection = my_possibilities(board) current_loc = random.choice(selection) board[current_loc] = my_player return(board) def my_row_win(board, my_player): for x in range(len(board)): win = True for y in range(len(board)): if board[x, y] != my_player: win = False continue if win == True: return(win) return(win) def my_col_win(board, my_player): for x in range(len(board)): win = True for y in range(len(board)): if board[y][x] != my_player: win = False continue if win == True: return(win) return(win) def my_diag_win(board, my_player): win = True: for x in range(len(board)): if board[x, x] != my_player: win = False return(win) def evaluate_game(board): my_winner = 0 for my_player in [1, 2]: if (my_row_win(board, my_player) or my_col_win(board, my_player) or my_diag_win(board, my_player)): my_winner = my_player if np.all(board != 0) and my_winner == 0: my_winner = -1 return my_winner # 메인 함수로 게임 시작 def my_play_game(): board, my_winner, counter = my_create_board(), 0, 1 print(board) sleep(2) while my_winner == 0: for my_player in [1, 2]: board = my_random_place(board, my_player) print("보드 이후 " + str(counter) + " 이동") print(board) sleep(2) counter += 1 my_winner = evaluate_game(board) if my_winner != 0: break return(my_winner) # 드라이버 코드 print("승자는: " + str(my_play_game())
출력 결과
[[0 0 0] [0 0 0] [0 0 0]] 보드 이후 1 이동 [[0 1 0] [0 0 0] [0 0 0]] 보드 이후 2 이동 [[0 1 0] [0 0 0] [0 0 2]] 보드 이후 3 이동 [[0 1 0] [0 0 0] [0 1 2]] 보드 이후 4 이동 [[0 1 0] [0 0 2] [0 1 2]] 보드 이후 5 이동 [[0 1 1] [0 0 2] [0 1 2]] 보드 이후 6 이동 [[0 1 1] [2 0 2] [0 1 2]] 보드 이후 7 이동 [[0 1 1] [2 1 2] [0 1 2]] 승자는: 1