python井字棋9*9双人对战
时间: 2023-07-08 13:32:39 浏览: 74
这是一个比较复杂的问题,需要用到许多编程知识。我可以给您提供一个实现井字棋9*9双人对战的Python代码框架,您可以根据需要进行修改和完善。
```python
class TicTacToe:
def __init__(self, size):
self.size = size
self.board = [[' ' for i in range(size)] for j in range(size)]
self.current_player = 'X'
self.winner = None
def print_board(self):
print(' ' + ' '.join([str(i+1) for i in range(self.size)]))
for i in range(self.size):
print(str(i+1) + ' ' + ' '.join(self.board[i]))
def get_move(self):
valid_move = False
while not valid_move:
move = input('Player ' + self.current_player + ', enter your move (row, column): ')
try:
row, col = move.split(',')
row = int(row) - 1
col = int(col) - 1
if row >= 0 and row < self.size and col >= 0 and col < self.size and self.board[row][col] == ' ':
valid_move = True
else:
print('Invalid move. Try again.')
except:
print('Invalid input. Try again.')
return row, col
def check_winner(self):
# Check rows
for i in range(self.size):
if all([self.board[i][j] == self.current_player for j in range(self.size)]):
self.winner = self.current_player
return
# Check columns
for j in range(self.size):
if all([self.board[i][j] == self.current_player for i in range(self.size)]):
self.winner = self.current_player
return
# Check diagonals
if all([self.board[i][i] == self.current_player for i in range(self.size)]):
self.winner = self.current_player
return
if all([self.board[i][self.size-i-1] == self.current_player for i in range(self.size)]):
self.winner = self.current_player
return
# Check for tie
if all([self.board[i][j] != ' ' for i in range(self.size) for j in range(self.size)]):
self.winner = 'Tie'
return
def play(self):
while not self.winner:
self.print_board()
row, col = self.get_move()
self.board[row][col] = self.current_player
self.check_winner()
if not self.winner:
self.current_player = 'O' if self.current_player == 'X' else 'X'
self.print_board()
if self.winner == 'Tie':
print('The game ended in a tie.')
else:
print('Player ' + self.winner + ' wins!')
```
这个代码框架实现了一个简单的井字棋游戏,可以通过修改和完善以实现您所需的功能。需要注意的是,这个代码框架只适用于2人对战,如果需要实现多人对战,还需要进行一定的修改。