Python游戏编程实践4:唐小山的世界

Python游戏编程实践4:唐小山的世界


前言

之前玩了一些SLG手游,感觉受到一些启发,可以把其中的游戏框架以最精简的方式实现一下,就使用Python语言编写了一个命令行小游戏,为了简单起见,图片、动画、音乐都没有制作。本着开源的精神,源代码已上传到GitCode,有兴趣的朋友不妨下载到电脑上试玩一下。

游戏的名称叫《唐小山的世界》,主人公的来源是之前看过的小说《镜花缘》,描述的是秀才唐敖之女唐小山随舅父林之洋等人出海寻父的故事。在这里描述的是唐小山到地下城打怪的故事,也勉强算是一种历险。

我的系统是优麒麟22.04.2 LTS(Jammy Jellyfish),Python版本是Python 3.10.6,windows系统也能运行,但有些加粗的字体和字体的颜色显示不正常。

其中用到了一个python的包xlrd,用来读取excel中的数据。这个包安装起来很简单,在命令行输入pip install xlrd即可。

xlrd包详细说明请参考:Python操作Excel表格的模块xlrd的简单介绍_幸福的达哥的博客-CSDN博客

运行

我的游戏不需要安装,只需打开linux的终端,输入python run_world_of_tang_xiao_shan.py即可运行,但还需要data.xls、7个*.py文件在同一目录下。data.xls是个excel表格,用来存储游戏数据。7个*.py文件是游戏模块。

如何在linux终端显示字体颜色请参考:关于如何在终端设置有颜色的字体_终端字体颜色_黄思博呀的博客-CSDN博客

运行成功如下图所示。

python run_world_of_tang_xiao_shan.py 
**************************************
欢迎来到《唐小山的世界 ver 1.10》。
第二幕:地下洞穴。
引子。
仙境,意思是指中国传统的远古神话中仙人生活的地方;亦指风景绝美的地方。
《增广贤文》曰:“富贵险中求。”
本游戏记载的是鲁蒂亚到仙境求富贵的故事。情节纯属虚构,如有雷同均为巧合。
**************************************
新的游戏(c),读取游戏(o), 退出(x):o

英雄属性界面:

姓名:【 唐小山 】,简介:【 本是百花仙子,武则天废唐改周时被贬到人间,托生为秀才唐敖之女唐小山。 】,战力:【 33 】
等级:【 1 】,血量:【 100/100 】,魔量:【 10/10 】
攻击力:【 0~12 (命中率:80%) 】,防御力:【 6 】
重击率:【 0% 】,闪避率:【 0% 】,连击率:【 0% 】
力量:【 0 】,敏捷:【 0 】,智力(魔法力):【 0 (0) 】,运气:【 0 】,潜能点数:【 0 】
经验值:【 0/50 】
铜币:【 10000

英雄装备界面:

基础装备:
1. 背心:【 上衣 】,2. 裤子:【 长裤 】,
主要装备:
3. 头盔:【 步兵铁盔 】,4. 头盔装饰:【 红宝石 】,5. 胸甲:【 蛮族胸甲 】,6. 胸甲装饰:【 蓝宝石 】,
7. 肩甲:【 棉布护肩 】,8. 肩甲装饰:【 绿宝石 】,9. 臂甲:【 棉布裹臂 】,10. 臂甲装饰:【 黄宝石 】,
11. 腿甲:【 南部骑士腿甲 】,12. 腿甲装饰:【 青宝石 】,13. 鞋子:【 南部骑士铁靴 】,14. 鞋子装饰:【 紫宝石 】,
15. 护手:【 蛮族铁手套 】,16. 颈部:【 铁质护身符 】,17. 披风:【 狐狸毛披风 】,18. 腰带:【 蛮族腰带 】,
19. 左手手指1:【 旅人指环 】,20. 左手手指2:【 铜戒指 】,21. 左手手指3:【 铜戒指 】,22. 左手手指4:【 骑士指环 】,23. 左手手指5:【  】,
24. 右手手指1:【  】,25. 右手手指2:【  】,26. 右手手指3:【  】,27. 右手手指4:【  】,28. 右手手指5:【  】,
29. 副手:【 铁盾 】,30. 武器:【 骑士剑 】,

这个游戏不只是个单人RPG游戏,还融入了SLG游戏经营主城的元素。主城界面:

你的位置:主城-建筑
基础设施:
1. 主城:【 lv.15 】,2. 市政厅:【 lv.15 】,3. 民居:【 lv.15 】
军事设施:
4. 兵营:【 lv.15 】,5. 靶场:【 lv.15 】,6. 狮鹫塔:【 lv.15 】,7. 卫戍营:【 lv.15 】
8. 修道院:【 lv.15 】,9. 训练场:【 lv.15 】,10. 天使走廊:【 lv.15 】
贸易设施:
11. 市集:【 lv.8 】,12. 贸易所:【 lv.15 】,13. 银行:【 lv.15 】
科技设施:
14. 战争学院:【 lv.15 】,15. 英雄大厅:【 lv.1 】,16. 技能学院:【 lv.15 】,17. 天赋学院:【 lv.15 】
已经占领城外资源:
农场:【 36 】,伐木场:【 32 】,石矿:【 28 】,铁矿:【 23 】,铜矿:【 23 】,金矿:【 14 】,水晶矿:【 13

在主城中可以征召英雄和军士加入远征队,与主人公一同战斗:

你的位置:主城-远征队
主城中可以征召的部队:
1. 哨卫 (186),2. 弩手 (156),3. 狮鹫 (132),4. 剑士 (12),5. 牧师 (9),6. 骑士 (6),7. 天使 (3),
已经加入你的远征队的部队:
1. 哨卫 (0),2. 弩手 (0),3. 狮鹫 (0),4. 剑士 (0),5. 牧师 (0),6. 骑士 (0),7. 天使 (0)

战斗可以选择手动进行,也可以自动进行:

遭遇怪物【 熔岩穴居人 】!预判敌我形势:【 敌强我弱,逃跑是最好的选择 】
开始战斗,怪先攻击。
【 熔岩穴居人 】对【 狮鹫 】造成了【 10302 】伤害,【 119 】个【 狮鹫 】死了。
【 熔岩穴居人 】对【 剑士 】造成了【 12922 】伤害,【 73 】个【 剑士 】死了。
【 熔岩穴居人 】对【 天使 】造成了【 11985 】伤害,【 33 】个【 天使 】死了。
【 熔岩穴居人 】被【 唐小山 】秒杀了!
战斗结束。
【 唐小山 】得到【 332072 】铜币!
【 唐小山 】得到【 173131 】经验值!
【 哨卫 】得到【 173131 经验值 * 186 】!

经过一番努力,最终打败Boss怪:

遭遇怪物【 精英地狱骑士 】!预判敌我形势:【 敌强我弱,逃跑是最好的选择 】
开始战斗,英雄先攻击。
你的选择:显示英雄属性(c),显示怪物属性(e),使用物品(u),普通攻击(w/a/s/d),逃跑(z):a
【 [蒙尘之剑]凯 】对【 精英地狱骑士 】造成了【 10311 】伤害。
【 [佣兵]罗伯森 】对【 精英地狱骑士 】造成了【 10264 】伤害。
【 [学徒]康斯坦泽 】对【 精英地狱骑士 】造成了【 10808 】伤害。
【 [学徒]康斯坦泽 】发动了连击,对【 精英地狱骑士 】造成了【 10808 】额外伤害!
【 [黎明骑士]席娜 】对【 精英地狱骑士 】造成了【 10506 】伤害。
【 [永望之歌]薇奥拉 】发动了重击,对【 精英地狱骑士 】造成了【 33831 】伤害!
【 [虔信之人]阿德里安 】对【 精英地狱骑士 】造成了【 4463 】伤害。
【 [魔骇之颜]萨麦尔 】对【 精英地狱骑士 】造成了【 3809 】伤害。
【 [魔骇之颜]萨麦尔 】发动了连击,对【 精英地狱骑士 】造成了【 3809 】额外伤害!
【 弩手 】对【 精英地狱骑士 】造成了【 0 】伤害。
【 狮鹫 】对【 精英地狱骑士 】造成了【 0 】伤害。
【 唐小山 】对【 精英地狱骑士 】造成了【 10449 】伤害。
【 精英地狱骑士 】打偏了,没有命中。
...
【 精英地狱骑士 】被打败了。
战斗结束。
【 唐小山 】得到【 703284 】铜币!
【 唐小山 】得到【 359272 】经验值!
【 唐小山 】得到【 中药草 】【 1 】个!
【 [蒙尘之剑]凯 】得到【 359272 经验值 】!
【 [佣兵]罗伯森 】得到【 359272 经验值 】!
【 [学徒]康斯坦泽 】得到【 359272 经验值 】!
【 [黎明骑士]席娜 】得到【 359272 经验值 】!
【 [永望之歌]薇奥拉 】得到【 359272 经验值 】!
【 [虔信之人]阿德里安 】得到【 359272 经验值 】!
【 [魔骇之颜]萨麦尔 】得到【 359272 经验值 】!
战斗伤亡:【 弩手(37) 】【 狮鹫(13) 】

【 老地精 】你完成了我的任务,你赢了!
【 唐小山 】期待与你下一次的合作!

*******************************************************
游戏开始时间:【  2023年5月27日 16:56:49  】,当前时间:【  2023年5月27日 21:6:29  】。
英雄已行走步数:【  2061  】,
英雄已战斗回合数:【  101181  】,
英雄已杀敌数量:【  54043  】,
英雄已造成伤害总计:【  88166459  】,英雄已承受伤害总计:【  33806835  】,
探险队已造成伤害总计:【  4037638740  】,探险队已承受伤害总计:【  167949556  】,
英雄已在市集花费:【  103800  】铜币,
已在贸易所交易数量:【  283569992  】,
已在银行存款金额:【  515402439  】铜币。
*******************************************************

Final

制作者:下唐人
制作工具:Python 3.10.6
运行系统:优麒麟22.04.2 LTS(Jammy Jellyfish)
游戏世界参考:《魔法门之英雄无敌:王朝》,龙图游戏
装备设计参考:《地下城堡3:魂之诗》,淘金互动
制作时间:2023年5月

完整的源代码已经上传到GitCode,链接在这里:下唐人 / World_of_Tang_Xiao_Shan · GitCode

猜你喜欢

转载自blog.csdn.net/quanet_033/article/details/130905700