Python 实战项目:控制台版飞行棋
一、项目介绍
本项目使用 Python 基础语法实现双人飞行棋小游戏,运行在控制台(终端)。
功能包括:
- 玩家掷骰子(1~6随机)
- 棋子前进、判断输赢
- 简单文字界面,清晰显示当前位置
- 支持玩家 A、玩家 B 轮流操作
- 到达终点判定胜利
适合:Python 入门实战、循环与条件判断练习、函数封装练习。
二、完整代码(可直接复制运行)
python
import random
import time
# 初始化玩家位置
player_a = 0
player_b = 0
# 终点位置
end_point = 30
print("=" * 50)
print(" Python 控制台飞行棋游戏")
print("规则:先到达 30 格的玩家获胜")
print("=" * 50)
# 游戏主循环
while True:
# ==================== 玩家A回合 ====================
input("\n玩家A按回车掷骰子:")
dice = random.randint(1, 6)
print(f"玩家A掷出:{dice} 点")
# 前进
player_a += dice
# 超过终点则不前进
if player_a > end_point:
player_a -= dice
print("超出终点,本轮不移动!")
print(f"玩家A当前位置:{player_a}")
time.sleep(0.5)
# 判断胜利
if player_a == end_point:
print("\n🎉 恭喜玩家A获得胜利!")
break
# ==================== 玩家B回合 ====================
input("\n玩家B按回车掷骰子:")
dice = random.randint(1, 6)
print(f"玩家B掷出:{dice} 点")
player_b += dice
if player_b > end_point:
player_b -= dice
print("超出终点,本轮不移动!")
print(f"玩家B当前位置:{player_b}")
time.sleep(0.5)
if player_b == end_point:
print("\n🎉 恭喜玩家B获得胜利!")
break
三、逐行详细代码分析(核心讲解)
1. 导入模块
python
import random
import time
- random :用来生成骰子点数(1~6)
- time :用来延迟显示,让游戏节奏更自然
2. 初始化游戏数据
python
player_a = 0
player_b = 0
end_point = 30
- player_a 、 player_b :记录两个玩家当前格子位置,起点都在 0
- end_point = 30 :设定终点为第 30 格,可自行修改
3. 游戏标题与规则
python
print("=" * 50)
print(" Python 控制台飞行棋游戏")
print("规则:先到达 30 格的玩家获胜")
print("=" * 50)
作用:美化界面,让玩家清楚游戏规则。
4. 游戏主循环
python
while True:
while True 是无限循环,直到有人胜利才用 break 退出。
5. 玩家A掷骰子
python
input("\n玩家A按回车掷骰子:")
dice = random.randint(1, 6)
print(f"玩家A掷出:{dice} 点")
- input() 暂停游戏,等待玩家按回车
- random.randint(1,6) 生成 1 到 6 之间的随机整数,模拟骰子
6. 棋子前进逻辑
python
player_a += dice
if player_a > end_point:
player_a -= dice
print("超出终点,本轮不移动!")
- 先加上骰子点数前进
- 如果超过终点 30,则退回本次步数,保证不会超界
这是飞行棋常见规则:必须刚好到达终点才算赢。
7. 显示位置并延迟
python
print(f"玩家A当前位置:{player_a}")
time.sleep(0.5)
延迟 0.5 秒,避免画面刷屏太快。
8. 判断胜利
python
if player_a == end_point:
print("\n🎉 恭喜玩家A获得胜利!")
break
位置等于 30 时胜利, break 跳出循环,游戏结束。
9. 玩家B逻辑(与A完全相同)
玩家B流程:掷骰子 → 前进 → 越界判断 → 胜利判断。
四、项目运行流程(完整过程)
1. 程序启动
打印标题和规则,初始化玩家位置都为 0。
2. 进入游戏循环
while True 保证游戏持续进行,直到有人赢。
3. 玩家A回合
- 等待按回车
- 随机骰子 1~6
- 位置增加骰子数
- 若超过 30 则回退
- 显示当前位置
- 判断是否到达终点
4. 玩家B回合
逻辑与玩家A完全一致,轮流进行。
5. 胜利判定
任意玩家位置 == 30 时,打印胜利信息并结束游戏。
五、扩展功能(可选升级,让项目更完整)
你可以在此基础上继续扩展,让项目更专业:
1. 幸运格 / 惩罚格
踩到 10 格前进 5 格,踩到 15 格后退 3 格
2. 飞机相撞
两人在同一格,一方退回起点
3. 支持多人游戏
用列表存储多个玩家位置
4. 图形化显示跑道
用 * 或 - 画出跑道,显示棋子位置
5. 记录步数统计
统计多少轮决出胜负
示例扩展代码(幸运格):
python
if player_a == 10:
print("触发幸运格!前进5格")
player_a += 5
六、总结(项目学习价值)
本飞行棋项目涵盖 Python 入门几乎所有核心知识点:
- 变量与数据类型
- 随机数模块 random
- 循环结构 while
- 条件判断 if/else
- 输入输出 input/print
- 时间延迟 time
- 简单游戏逻辑设计