Python+Pygame实战:两个文字剧情游戏《巨龙之洞》与《太空矿工》源码解析
本文通过两个完整的Python文字剧情游戏案例——《巨龙之洞》与《太空矿工》,详细演示了如何使用Python和Pygame构建交互式文本游戏。文章涵盖环境配置、核心逻辑代码及运行效果,适合Python初学者通过实战掌握条件判断、循环结构与用户交互逻辑。
前言
大家好,我是栗子同学。新的一周开始了,希望大家都能保持充沛的精力。
考虑到大家可能更热衷于游戏代码(毕竟这是肯定的嘛),今天我们来换个口味,分享一些文字类游戏的实现思路。
希望能借此机会获得大家的关注与推荐。下次如果感兴趣,再分享爬虫相关的内容。创作方向主要依据大家的喜好而定。
本期更新了两个游戏项目,名称由我自行命名,并非推荐其他现有游戏,旨在避免平台限流。以下是这两个游戏的代码版本:《巨龙之洞》和《太空矿工》,希望能满足大家的需求。
一、《巨龙之洞》
1)故事背景
“公主被巨龙掳走!”
这一消息传遍了整个大陆。无数张悬赏令张贴在城墙之上,以巨额奖金吸引勇士前来救援。
尽管巨龙被视为世间最强大的生物,仍有众多勇士揭下悬赏令,骑着瘦马、握着破剑,不畏艰险地踏上了拯救公主的征程。

2)环境配置
开发环境:Python 3、PyCharm。其他所需模块均为Python内置模块,只需安装好Python环境即可运行,该游戏代码相对简单。
3)代码展示
import time
import random
def displayFintro():
print('''你在一个满是龙的地方。 在你面前,
有两个山洞。 在一个洞穴里,龙是友好的,他会和你分享他的宝藏
另一条龙又贪婪又饥饿,一看到你就会吃了你 .''')
print()
def chooseCave():
cave=''
while cave !='1' and cave !='2':
print('你要去那个山洞 .第一个还是第二个 .请输入数字')
cave=input()
return cave
def checkCave(chooseCave):
print('你接近山洞.....')
time.sleep(2)
print('这里又黑又恐怖....')
time.sleep(2)
print('一条巨龙飞到你面前,张开了嘴 ....')
print()
time.sleep(2)
friendlyCave=random.randint(1,2)
if chooseCave == str(friendlyCave):
print('把他的财宝给你!')
else:
print('一口就把你吞下!')
playAgain='yes'
while playAgain=='yes' or playAgain=='Y':
displayFintro()
caveNumber =chooseCave()
checkCave(caveNumber)
print('你想再玩一次吗 yes或者no')
playAgain= input()4)效果展示
界面中我选择了第2条巨龙对应的选项。

二、《太空矿工》
1)故事背景
这款游戏旨在让你体验矿工“悲惨”的生活经历。
场景设定在一片漆黑的太空地下洞窟中,光线极其微弱,只能依靠头灯勉强看清前方景象。
这里幽暗且空间逼仄,一名矿工正奋力挥动锄头,从斑驳的岩壁上开采稀有矿石。四周寂静无声,只有锄头撞击岩石发出的尖锐声响。矿工并未意识到,平静背后危机四伏,他已被一群外星人盯上……为了生存,他将何去何从?

2)环境配置
开发环境:Python 3、PyCharm。其他所需模块均为Python内置模块,安装好Python环境即可运行。
(Windows系统中按 Win + R 打开运行窗口,输入cmd打开命令提示符,然后输入安装命令:pip install 模块名。如果安装速度较慢,可以切换为国内镜像源。)
标准安装命令:pip install + 模块名;或使用镜像源安装:pip install -i pypi.douban.com/simple/ + 模块名
3)代码展示
import turtle
# 彩色弹球
t = turtle.Pen()
t.speed(0)
turtle.bgcolor('black')
# 更改sides变量,可以画出完全不同的图形哦
# 改为2、3、4、5、6等,看看效果吧
sides = 5
colors = ['red', 'yellow', 'blue', 'orange', 'green', 'purple']
for x in range(360):
t.pencolor(colors[(x % sides)])
t.forward(((x * 3) / sides + x))
t.left((360 / sides + 1))
t.pensize(((x * sides) / 200))
t.left(90)
print('欢迎来到宇宙空间站')
print('你现在要去?')
print('1火箭发射台')
print('2商店')
start = input('请输入数字选项:')
while (start != '1'):
start = input('商店关门了去其他地方吧')
print('到达火箭舱内,选择你要去的地方')
print('1火星')
print('2黑洞')
start_1 = input('请输入数字选项:')
if (start_1 == '2'):
print('你被黑洞巨大的引力撕成了碎片')
elif (start_1 == '1'):
print('现在你需要在火星上采集矿石,你觉得那里会有矿石【此任务等级为ssss级,如果无法完成,会被流放到宇宙中】')
print('1火星天然矿洞')
print('2火星人村落')
place = input('请输入数字选项:')
if (place == '1'):
print('你来到矿洞')
print('发现这里已经没有你要找的矿石了')
print('1应该被挖了,去村落找找')
print('2tmd,根本就没有矿石')
place_1 = input('请输入数字选项:')
if (place_1 == '1'):
print('你来到火星人的村落')
print('发现这里到处都有那种矿石,你会用什么方法得到这些矿石')
print('1. 和他们交易')
print('2. 打败他们,抢走所有矿石')
place_2 = input('请输入数字选项:')
if (place_2 == '1'):
print('你用一把来自地球的泥土换来了一大堆矿石,简直是太走运了')
print('任务完成!')
elif (place_2 == '2'):
print('一点正义感都没有,大黄鸡才不要带你去冒险呢!游戏结束!')
else:
print('随便行动是找不到发动机的...你在源码世界里迷路了...')
elif (plce_1 == '2'):
print('由于你对任务失去信心,所以你无法完成任务,被流放了到宇宙中')
else:
print('随便行动是找不到发动机的...你在源码世界里迷路了...')
elif (place == '2'):
print('你到了火星人的村落,发现这里到处都是那种矿石,你会用什么方法获得矿石')
print('1和他们交易')
print('2打败他们拿走所有矿石')
place_2 = input('请输入数字选项:')
if (place_2 == '1'):
print('你用一堆来自地球的泥土换来了一大堆矿石,太走运了')
print('任务完成')
elif (place_2 == '2'):
print('由于你寡不敌众,被火星人群殴了......')
else:
print('随便行动是找不到矿石的,你在火星迷路了')
else:
print('看来你和发动机没有缘分啊,游戏结束')
else:
print('随便行动是找不到矿石的,你在火星迷路了')4)效果展示
1——开场动画演示

2)火星挖矿遭遇围攻场景

至此,关于Python+Pygame实战之文字剧情游戏的实现介绍完毕。如需了解更多Python与Pygame文字游戏相关内容,请搜索本站往期文章或继续浏览后续文章。感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













