编写程序,实现人机交互的3*3井字棋。玩家决定画○或画×,电脑随机位置下棋子。
时间: 2023-05-19 12:05:35 浏览: 54
好的,这是一个简单的井字棋游戏的 Python 代码:
```python
import random
board = [' '] * 9
player = 'X'
computer = 'O'
def draw_board():
print('-------------')
print('| ' + board[0] + ' | ' + board[1] + ' | ' + board[2] + ' |')
print('-------------')
print('| ' + board[3] + ' | ' + board[4] + ' | ' + board[5] + ' |')
print('-------------')
print('| ' + board[6] + ' | ' + board[7] + ' | ' + board[8] + ' |')
print('-------------')
def get_player_move():
move = input('Enter your move (1-9): ')
while move not in ['1', '2', '3', '4', '5', '6', '7', '8', '9'] or board[int(move) - 1] != ' ':
move = input('Invalid move. Enter your move (1-9): ')
return int(move) - 1
def get_computer_move():
possible_moves = []
for i in range(9):
if board[i] == ' ':
possible_moves.append(i)
return random.choice(possible_moves)
def check_win(player):
if (board[0] == player and board[1] == player and board[2] == player) or \
(board[3] == player and board[4] == player and board[5] == player) or \
(board[6] == player and board[7] == player and board[8] == player) or \
(board[0] == player and board[3] == player and board[6] == player) or \
(board[1] == player and board[4] == player and board[7] == player) or \
(board[2] == player and board[5] == player and board[8] == player) or \
(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
else:
return False
def main():
global board
draw_board()
while True:
move = get_player_move()
board[move] = player
draw_board()
if check_win(player):
print('You win!')
break
if ' ' not in board:
print('Tie!')
break
move = get_computer_move()
board[move] = computer
draw_board()
if check_win(computer):
print('Computer wins!')
break
if __name__ == '__main__':
main()
```
这个程序实现了一个简单的人机交互的井字棋游戏,玩家可以选择画○或画×,电脑会随机下棋子。