pycharm实现五子棋代码
时间: 2024-09-07 18:01:42 浏览: 83
在PyCharm中实现五子棋的代码,通常涉及几个关键部分:棋盘的显示、玩家输入、胜负判断和游戏循环。以下是一个简化版的五子棋实现,使用Python编写:
```python
# 定义棋盘大小
BOARD_SIZE = 15
# 初始化棋盘
def init_board():
return [["." for _ in range(BOARD_SIZE)] for _ in range(BOARD_SIZE)]
# 打印棋盘
def print_board(board):
for row in board:
print(" ".join(row))
# 检查是否有玩家获胜
def check_win(board, row, col, player):
directions = [(0, 1), (1, 0), (1, 1), (1, -1)] # 水平、垂直、两个对角线方向
for d in directions:
count = 1 # 连续棋子的计数器
# 检查正方向
for i in range(1, 5):
r = row + i * d[0]
c = col + i * d[1]
if 0 <= r < BOARD_SIZE and 0 <= c < BOARD_SIZE and board[r][c] == player:
count += 1
else:
break
# 检查反方向
for i in range(1, 5):
r = row - i * d[0]
c = col - i * d[1]
if 0 <= r < BOARD_SIZE and 0 <= c < BOARD_SIZE and board[r][c] == player:
count += 1
else:
break
# 检查是否有5个连续的棋子
if count >= 5:
return True
return False
# 主游戏循环
def main():
board = init_board()
turn = "X" # X玩家先手
while True:
print_board(board)
try:
row, col = map(int, input(f"Player {turn}, enter your move (row col): ").split())
except ValueError:
print("Invalid input. Please enter numbers separated by space.")
continue
if not (0 <= row < BOARD_SIZE and 0 <= col < BOARD_SIZE):
print("Invalid move. Please try again.")
continue
if board[row][col] != ".":
print("This cell is already taken. Please try again.")
continue
board[row][col] = turn
if check_win(board, row, col, turn):
print_board(board)
print(f"Player {turn} wins!")
break
turn = "O" if turn == "X" else "X" # 切换玩家
if __name__ == "__main__":
main()
```
这段代码实现了基本的五子棋游戏逻辑,包括初始化棋盘、打印棋盘、玩家输入、胜负判断和游戏循环。玩家交替输入坐标来放置棋子,当一方玩家在横、竖、斜任一方向上连成五个棋子时,游戏结束,该玩家获胜。
阅读全文
相关推荐


















