Python编程小游戏:五子棋

作者:蛮不讲李2024.01.18 01:47浏览量:13

简介:这是一个简单的五子棋游戏的Python代码,使用控制台界面。玩家轮流在棋盘上放置棋子,第一个在横、竖或斜方向连成五子的玩家获胜。

首先,我们需要创建一个棋盘。这个棋盘是一个二维列表,我们可以使用Python的列表推导式来创建它。

  1. # 创建一个10x10的棋盘
  2. board = [[0 for _ in range(10)] for _ in range(10)]

然后,我们需要一个函数来打印出当前的棋盘状态。我们可以使用字符串来表示棋子的状态,例如’ ‘表示空位置,’X’表示玩家1的棋子,’O’表示玩家2的棋子。

  1. def print_board(board):
  2. for row in board:
  3. print(' '.join(str(cell) for cell in row))

接下来,我们需要一个函数来判断是否有玩家获胜。我们可以检查每一行、每一列和两个对角线,看看是否有五个相同的棋子连在一起。

  1. def check_win(board, player):
  2. # 检查行
  3. for row in board:
  4. if row.count(player) == 5:
  5. return True
  6. # 检查列
  7. for col in range(10):
  8. if all(cell == player for cell in board[col]):
  9. return True
  10. # 检查对角线
  11. if board[0].count(player) == 5 or \n board[5].count(player) == 5:
  12. return True
  13. # 检查反对角线
  14. if all(row[col] == player for row in board for col in range(5)):
  15. return True
  16. return False

然后,我们需要一个函数来处理用户的输入。这个函数将询问玩家放置棋子的位置,并更新棋盘。

  1. def make_move(board):
  2. row, col = map(int, input('输入行和列的位置(例如:4 5):').split())
  3. board[row][col] = 'X' if board[row][col] == ' ' else 'O'
  4. return board

最后,我们需要一个主函数来运行游戏。这个函数将轮流询问玩家放置棋子,直到有玩家获胜。

  1. def main():
  2. while True:
  3. print_board(board)
  4. if check_win(board, 'X'):
  5. print('玩家1赢了!')
  6. break
  7. board = make_move(board)
  8. if check_win(board, 'O'):
  9. print('玩家2赢了!')
  10. break
  11. main()

这是一个非常简单的五子棋游戏。你可以通过添加更多的功能来改进它,例如悔棋功能、计时器、AI对手等等。你也可以使用图形用户界面(GUI)库来创建一个更漂亮的界面。