鱼C论坛

 找回密码
 立即注册
查看: 4312|回复: 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语句。其实只有循环和判断就很好玩了,不只是简单的数字游戏哟。


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

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

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

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


print("------------游戏结束-------------")

评分

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

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-19 19:05:18 | 显示全部楼层
哇哦,兄dei,做的很棒啊,作为一名初学者,感觉你很牛逼啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我也是初学者
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-20 11:25:25 | 显示全部楼层
萌新看的一脸懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

就是纯粹的while和if语句,别的没什么啊~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-21 15:39:50 | 显示全部楼层
temp.isdigit():这是个what啊  不认识这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

假定temp是数字的话。

这个小甲鱼老师视频里有讲,课后习题也有,不会的话就是没认真听讲啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-2 13:41:26 | 显示全部楼层
为什么你的print里面总有个f?是C语言来的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

print里面有个f代表格式化字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

是format一样的吗?你这是2.0的语法吗?3.0不都是放个.format在字符串后面吗
想知道小甲鱼最近在做啥?请访问 -> 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版本的新特性,记不太清。

这么写我习惯了,不容易乱。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 22:29:59 | 显示全部楼层
看了半个小时才看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-22 17:17:51 | 显示全部楼层
就是不明白其循环的先后
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-1 20:45:51 | 显示全部楼层
这个游戏怎么运行啊,我的编译器弹出语法错误invalid syntax
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

我的编译器没问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-17 19:37:07 | 显示全部楼层
厉害厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-13 10:42:09 | 显示全部楼层
3天你就会做游戏了啊  这么牛逼啊  大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

比较爱玩 ...

喜欢自己瞎捅咕,见笑了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-30 15:02:10 | 显示全部楼层
厉害啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-15 14:26:06 | 显示全部楼层
看到了差距,手动点赞一个!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 03:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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