用python语言写一段类似tictok的程序
时间: 2024-05-12 15:16:20 浏览: 14
好的,我能回答您的问题。以下是一个简单的用 Python 实现的 Tic Tac Toe 程序:
```python
import random
board = [None] * 9
human = 'X'
ai = 'O'
def draw_board():
print('-------------')
for i in range(3):
print('|', board[i*3], '|', board[i*3 + 1], '|', board[i*3 + 2], '|')
print('-------------')
def make_move(player):
if player == human:
index = int(input('Enter move (0-8): '))
while board[index] is not None:
index = int(input('Position occupied! Enter another move (0-8): '))
else:
print('AI is making a move...')
index = get_best_move()
board[index] = player
def get_best_move():
available_moves = []
for i in range(9):
if board[i] is None:
available_moves.append(i)
for player in [ai, human]:
for move in available_moves:
board[move] = player
if is_winner(player):
return move
board[move] = None
if 4 in available_moves:
return 4
corners = [0, 2, 6, 8]
available_corners = []
for corner in corners:
if corner in available_moves:
available_corners.append(corner)
if len(available_corners) > 0:
return random.choice(available_corners)
edges = [1, 3, 5, 7]
available_edges = []
for edge in edges:
if edge in available_moves:
available_edges.append(edge)
if len(available_edges) > 0:
return random.choice(available_edges)
def is_winner(player):
for i in range(3):
if (board[i*3] == player and board[i*3+1] == player and board[i*3+2] == player) or \
(board[i] == player and board[i+3] == player and board[i+6] == player):
return True
if (board[0] == player and board[4] == player and board[8] == player) or \
(board[2] == player and board[4] == player and board[6] == player):
return True
return False
def main():
draw_board()
while None in board and not is_winner(human) and not is_winner(ai):
make_move(human)
draw_board()
if None in board and not is_winner(human) and not is_winner(ai):
make_move(ai)
draw_board()
if is_winner(human):
print('You win!')
elif is_winner(ai):
print('AI wins!')
else:
print('Tie!')
if __name__ == '__main__':
main()
```
这个程序使用了一个简单的 AI 算法来玩井字棋游戏。运行程序后,您可以输入数字 0 到 8 来在棋盘上放置 X,AI 会根据算法自动进行操作。如果您赢了,程序会输出 "You win!",如果 AI 赢了,程序会输出 "AI wins!",如果平局,程序会输出 "Tie!"。