1. 初始化棋盘
首先,我们需要创建一个3x3的二维列表来表示棋盘,其中0表示空位,1表示玩家1的棋子,2表示玩家2的棋子。
```python
board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
```
2. 绘制棋盘
编写一个函数来绘制棋盘,将棋盘的状态打印出来。
```python
def draw_board(board):
for row in board:
for cell in row:
if cell == 0:
print("-", end=" ")
elif cell == 1:
print("X", end=" ")
elif cell == 2:
print("O", end=" ")
print()
```
3. 判断游戏是否结束
编写一个函数来判断游戏是否结束,即是否有玩家获胜或者棋盘已满。
```python
def game_over(board):
判断行是否有连成一线的棋子
for row in board:
if row.count(row) == len(row) and row != 0:
return True
判断列是否有连成一线的棋子
for col in range(len(board)):
if board[col] == board[col] == board[col] != 0:
return True
判断对角线是否有连成一线的棋子
if board == board == board != 0:
return True
if board == board == board != 0:
return True
判断棋盘是否已满
if all(cell != 0 for row in board for cell in row):
return True
return False
```
4. 获取玩家输入并落子
编写函数获取玩家的输入并在棋盘上落子。
```python
def player_move(player):
while True:
try:
row = int(input(f"玩家 {player},请输入行号(0 - 2):"))
col = int(input(f"玩家 {player},请输入列号(0 - 2):"))
if 0 <= row <= 2 and 0 <= col <= 2 and board[row][col] == 0:
board[row][col] = player
break
else:
print("输入错误,请重新输入。")
except ValueError:
print("输入错误,请重新输入。")
```
5. 游戏主循环
编写游戏的主循环,让玩家轮流输入并进行游戏。
```python
def play_game():
current_player = 1
while True:
draw_board(board)
player_move(current_player)
if game_over(board):
draw_board(board)
if game_over(board):
print("平局!")
break
current_player = 3 - current_player 切换玩家
```
6. 启动游戏
最后,编写一个主函数来启动游戏。
```python
if __name__ == "__main__":
play_game()
```
将以上代码整合到一个Python文件中,即可运行一个简单的井字棋游戏。玩家可以通过输入行号和列号来在棋盘上放置自己的棋子,直到有玩家获胜或棋盘已满为止。