制作python小游戏井字棋的程序,要求三局两胜
时间: 2023-12-28 08:06:03 浏览: 156
python实现井字棋小游戏
好的,制作井字棋游戏程序可以分为以下几个步骤:
1. 定义游戏棋盘:使用列表或二维数组表示井字棋棋盘,初始时所有位置为空。
2. 定义游戏规则:判断游戏是否结束(胜利或平局),以及每一步落子是否合法。
3. 定义游戏循环:循环执行游戏步骤,直到游戏结束。
4. 实现游戏步骤:根据玩家输入的坐标,在棋盘上落子,并判断游戏是否结束。
5. 实现胜利判断:判断落子后是否出现连成三个的情况,来判断游戏是否结束,以及哪一方获胜。
6. 实现平局判断:当棋盘所有位置都落有棋子时,如果没有出现连成三个的情况,那么判定为平局。
以下是一个简单的井字棋游戏程序,您可以参考一下:
```python
def print_board(board):
print(" 0 1 2")
for i in range(3):
print(i, end=" ")
for j in range(3):
print(board[i][j], end=" ")
print()
def check_win(board):
# 横向连成三个
for i in range(3):
if board[i][0] == board[i][1] == board[i][2] and board[i][0] != "-":
return board[i][0]
# 纵向连成三个
for j in range(3):
if board[0][j] == board[1][j] == board[2][j] and board[0][j] != "-":
return board[0][j]
# 对角线连成三个
if board[0][0] == board[1][1] == board[2][2] and board[0][0] != "-":
return board[0][0]
if board[0][2] == board[1][1] == board[2][0] and board[0][2] != "-":
return board[0][2]
# 没有连成三个,判断平局
for i in range(3):
for j in range(3):
if board[i][j] == "-":
return None
return "tie"
def main():
board = [["-" for j in range(3)] for i in range(3)]
print_board(board)
turn = "X"
while True:
print("轮到 %s 落子" % turn)
row = int(input("请输入行号(0-2): "))
col = int(input("请输入列号(0-2): "))
if board[row][col] != "-":
print("该位置已经有棋子,请重新输入")
continue
board[row][col] = turn
print_board(board)
winner = check_win(board)
if winner:
print("%s 获胜!" % winner)
break
if turn == "X":
turn = "O"
else:
turn = "X"
print("游戏结束")
# 运行游戏
win_count = {"X": 0, "O": 0}
for i in range(3):
print("第 %d 局开始" % (i+1))
main()
winner = input("是否有胜者?(X/O/tie) ")
win_count[winner] += 1
if win_count["X"] == 2 or win_count["O"] == 2:
print("比赛结束")
break
```
这个程序实现了三局两胜的要求,每局游戏结束后会询问是否有胜者,并记录胜利次数,当某一方胜利两局时,比赛结束。
阅读全文