鱼C论坛

 找回密码
 立即注册
查看: 4730|回复: 32

[学习笔记] 【Pyhon 004讲心得体会】【真.小游戏展示】

[复制链接]
发表于 2018-11-16 13:14:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 heidern0612 于 2019-7-29 09:47 编辑

写的内容都是自我思考的过程,难免有疏漏,有错误的地方欢迎广大鱼油给予指正!


改进我们的小游戏这一节挺好玩的,说实话这个小游戏浪费我一中午时间,饭都顾不上吃。

后面看来,其实并不推荐这种if套if又套if的写法。

不符合代码简洁之道,不过当时看来可以实现某些功能,看起来也蛮有趣的。



实现了如下功能:

1、增加了一个Debuffer,敌人持续加血、我方持续减血效果。

2、在靠近猜对的数时,对方会获得一个debuffer,会出现暴击效果。

3、我方可以吃血瓶恢复血量。

4、如果三回合没有猜到数字 and 不贴边,对方会获得一个暴击效果,持续到下回合结束。

5、辛苦打败敌人和猜中数字打败敌人结局不太一样。

6、根据自身血量的不同,猜中数字会导致不一样的结局。




还可以预实现以下效果:

1、打怪几率掉装备,可以获得更牛X的攻击效果,敌人去血更多。

2、可以对敌人释放魔法,让敌人说出接近目标数字的数字。

3、我方获得狂暴魔法,双方都加攻击。

4、还有很多好玩的效果,都可以用whie 和if  来实现,通篇我也只用了while和if语句。其实只有循环和判断就很好玩了,不只是简单的数字游戏哟。



  1. import random
  2. hp1 = 20                        #人类血量
  3. hp2 = 50                        #恶魔血量
  4. med = 3                        #药品数量
  5. secrect = random.randint(1,20)
  6. mgc = 3                        #恶魔魔法冷却回合
  7. debuffer = 0                #人类受伤debuffer
  8. print("""----------这里是恶魔猫的城堡----------
  9. 愚蠢的人类,你要向我挑战吗?
  10. 你作为千百年来敢于反抗喵星人的唯一人类,似乎已经做好了准备。
  11. 身上只有三瓶HP药,是部落的长老费劲千辛万苦给你熬制出来的,所以要省着点用。(指令:吃药)
  12. """)

  13. while hp1 > 0 and hp2 >0:
  14.         temp = input("请输入要攻击的数值:")
  15.         if "吃药" in temp and med > 0 and hp1 <20:
  16.                 hp1 += 10
  17.                 med -= 1
  18.                 print("你喝下了珍贵的红药水,血量得到了一定的恢复!")
  19.         if hp1 > 20:
  20.                 hp1 = 20
  21.                 print(f"你已经恢复到了满状态!血量当前为{hp1}")               
  22.         if med == 0 :
  23.                 print("不知不觉间,你的包裹已经空空如也……药吃没了,你只能选择死战到底。")
  24.                
  25.         if temp.isdigit():
  26.                 guess = int(temp)
  27.                 if guess != secrect:
  28.                         if 0< (guess - secrect) < 2 or 0 < (secrect - guess) < 2:             #接近猜测的数字(范围2以内)
  29.                                 print("你似乎发现了喵星人的怕痒的弱点,上去对着猫星人一顿挠。喵星人准备的魔法中断了。")
  30.                                 hp2 -= 10
  31.                                 hp1 -= 2
  32.                                 mgc = 3
  33.                                 print(f"你当前的血量值为{hp1},喵星人的血量值为{hp2},距喵星人准备魔法还有{mgc}回合")
  34.                         else:
  35.                                 print("喵星人敏捷的闪过你的攻击,并朝你发动了一次反击。")
  36.                                 hp2 -= 5
  37.                                 hp1 -= 3
  38.                                 mgc -= 1
  39.                                 print(f"你当前的血量值为{hp1},喵星人的血量值为{hp2},距喵星人准备魔法还有{mgc}回合")
  40.                
  41.                 else:
  42.                         if hp1 >= 15 :
  43.                                 print("你轻松的战胜了喵星人,喵星人绝望的看着你对你说:‘十八年后我还会回来的!’,然后死掉了")
  44.                                 print("人类获得了胜利,全国上下载歌载舞,一个新的时代开启了。")
  45.                                 hp2 -=50
  46.                                 break
  47.                         elif hp1 <= 5 :
  48.                                 print("你战斗了许久也无法战胜喵星人,同意了喵星人割地赔款的要求。")
  49.                                 print("喵星人虎视眈眈的望着你和你的国家,不知在想些什么。")
  50.                                 hp2 -=50
  51.                                 break
  52.                         else:
  53.                                 print("你艰难的战胜了喵星人,喵星人逃跑了。")
  54.                                 print("人类国家从上到下一片疮痍,百废待兴。")
  55.                                 hp2 -=50
  56.                                 break
  57.                 if mgc == 0 :
  58.                         hp1 -= 4
  59.                         hp2 += 5
  60.                         mgc = 3
  61.                         debuffer = 2
  62.                         print("喵星人发动了自身天赋技能:卖萌,你被大大的伤害了8点血,喵星人获得了5点血量的特殊恢复。")
  63.                         print(f"你当前的血量值为{hp1},喵星人的血量值为{hp2},距喵星人准备魔法还有{mgc}回合。")
  64.                 if debuffer != 0:
  65.                         debuffer -= 1
  66.                         hp1 -=2
  67.                         hp2 +=3
  68.                         print("猫星人因上回合发动了天赋技能,获得了持续恢复3点血量,你被持续的伤害了2点血量。")
  69.                         print(f"你当前的血量值为{hp1},喵星人的血量值为{hp2}。")       
  70.         else:
  71.                         print("趁着你的空档,喵星人趁着你慌乱的时候攻击了你一波。")
  72.                         hp1 -=1
  73.                         print(f"你当前的血量值为{hp1},喵星人的血量值为{hp2}。")

  74. if hp1 <= 0:
  75.         print("你被喵星人打败了,喵星人彻底的统治了星球,人类依旧活在喵星人的支配之下。")

  76. if hp2 <= 0:
  77.         print("你靠着自身的努力打败了喵星人,全国上下热烈的庆祝着,欢迎着你的归来。")


  78. print("------------游戏结束-------------")
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
涨势良 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-19 19:05:18 | 显示全部楼层
哇哦,兄dei,做的很棒啊,作为一名初学者,感觉你很牛逼啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-20 08:04:15 | 显示全部楼层
你好,再见 发表于 2018-11-19 19:05
哇哦,兄dei,做的很棒啊,作为一名初学者,感觉你很牛逼啊

我也是初学者
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-20 11:25:25 | 显示全部楼层
萌新看的一脸懵
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-20 18:12:45 | 显示全部楼层

就是纯粹的while和if语句,别的没什么啊~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-21 15:39:50 | 显示全部楼层
temp.isdigit():这是个what啊  不认识这个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-21 16:34:59 | 显示全部楼层
cui12345 发表于 2018-11-21 15:39
temp.isdigit():这是个what啊  不认识这个

假定temp是数字的话。

这个小甲鱼老师视频里有讲,课后习题也有,不会的话就是没认真听讲啦~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-2 13:41:26 | 显示全部楼层
为什么你的print里面总有个f?是C语言来的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-2 15:22:40 | 显示全部楼层
ysp1992 发表于 2018-12-2 13:41
为什么你的print里面总有个f?是C语言来的吗?

print里面有个f代表格式化字符串。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 12:32:04 | 显示全部楼层
heidern0612 发表于 2018-12-2 15:22
print里面有个f代表格式化字符串。

是format一样的吗?你这是2.0的语法吗?3.0不都是放个.format在字符串后面吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-4 12:47:10 | 显示全部楼层
本帖最后由 heidern0612 于 2018-12-4 12:52 编辑
ysp1992 发表于 2018-12-4 12:32
是format一样的吗?你这是2.0的语法吗?3.0不都是放个.format在字符串后面吗


好像是3.6版本的新特性,记不太清。

这么写我习惯了,不容易乱。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 22:29:59 | 显示全部楼层
看了半个小时才看懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-22 17:17:51 | 显示全部楼层
就是不明白其循环的先后
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-1 20:45:51 | 显示全部楼层
这个游戏怎么运行啊,我的编译器弹出语法错误invalid syntax
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-2 10:29:07 | 显示全部楼层
f风起 发表于 2019-1-1 20:45
这个游戏怎么运行啊,我的编译器弹出语法错误invalid syntax

试试把第一行#coding =GBK去掉。

我的编译器没问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-17 19:37:07 | 显示全部楼层
厉害厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-13 10:42:09 | 显示全部楼层
3天你就会做游戏了啊  这么牛逼啊  大神
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-13 12:51:16 | 显示全部楼层
白开水1982 发表于 2019-2-13 10:42
3天你就会做游戏了啊  这么牛逼啊  大神

比较爱玩 ...

喜欢自己瞎捅咕,见笑了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-30 15:02:10 | 显示全部楼层
厉害啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-15 14:26:06 | 显示全部楼层
看到了差距,手动点赞一个!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 13:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表