您的位置:首页 > 科技 > 能源 > 百度点击器找名风_计算机应用技术毕业设计_最近三天的新闻热点_如何去除痘痘效果好

百度点击器找名风_计算机应用技术毕业设计_最近三天的新闻热点_如何去除痘痘效果好

2024/12/22 14:37:57 来源:https://blog.csdn.net/qq_42217078/article/details/144148376  浏览:    关键词:百度点击器找名风_计算机应用技术毕业设计_最近三天的新闻热点_如何去除痘痘效果好
百度点击器找名风_计算机应用技术毕业设计_最近三天的新闻热点_如何去除痘痘效果好

一.前提提要

上一篇,我们用python构建了燕双鹰的对线小游戏,经过了三次版本的更新使得玩家可以自主的和燕双鹰有互动,只是依旧还是被无情碾压,这很不平衡!对与玩家而言很不公平,于是我就想 如果 可以对燕双鹰有一定几率造成伤害的话,那么 这样的博弈才会更加有趣。

我不是挂王-用python实现燕双鹰小游戏-CSDN博客

二.修改思路

基于 Python 面向对象编程实现的文本交互小游戏,通过玩家与燕双鹰角色在不同情境下的交互操作,依据设定规则改变双方生命值,直至一方生命值归零或玩家主动退出结束游戏。

1.关键类及主要属性(YanYuanYing类)

包含燕双鹰与玩家的状态(如讲话、有无子弹、翻滚等)及生命值属性,还有玩家攻击类型、未命中次数等用于游戏逻辑判定的属性。

2.核心行为方法(YanYuanYing类内)

与交互相关speak(开启对话)、handle_shoot(处理开枪行为)、handle_surround(处理包围行为)、handle_loud_speak(处理大声说话行为),各自按规则输出相应对话并影响角色状态和双方生命值。

与攻击相关handle_player_attack,根据玩家所选攻击类型,依概率判断命中情况,计算双方伤害及反击情况,影响生命值。

三.代码实现

1.具体代码

import randomclass YanYuanYing:def __init__(self):self.is_speaking = Falseself.has_bullet = True  # 初始状态为子弹叠加态(不开枪则有子弹)self.is_rolling = Falseself.is_surrounded = Falseself.is_loud_spoken_to = Falseself.health = 100  # 燕双鹰的生命值属性,初始为100self.player_health = 100  # 新增玩家的生命值属性,初始为100self.player_attack_type = "普通攻击"  # 默认普通攻击,可升级为其他厉害的功法或武器self.miss_count = 0  # 记录玩家连续未命中次数,用于触发被动def speak(self):print("你举枪对准燕双鹰,并且说道:'燕双鹰你插翅难逃,投降不投降?'")print("燕双鹰:'你的枪法不错,但还不够快。现在,你进入了我的领域。'")self.is_speaking = Truedef handle_shoot(self):if self.is_speaking:if self.has_bullet:trigger_choice = input("你发现枪里有子弹,是否扣动扳机(1.是/2.否):").strip()if trigger_choice == "1":print("你笑道:'死到临头还给你装上了?下辈子注意!'")print("你开枪了,但燕双鹰躲过了子弹。现在枪里没子弹了。")self.has_bullet = Falseself.miss_count += 1elif trigger_choice == "2":print("你犹豫了一下,没有扣动扳机。但是此时枪里有子弹。")else:print("无效的选择,请重新输入。")else:print("你尝试开枪,但发现枪里没子弹。枪没子弹了,你得想别的办法了!")# 新增逻辑,如果在领域内开枪没子弹,有一定概率燕双鹰会主动攻击,消耗玩家生命值if random.random() < 0.3:self.player_health -= 15print(f"燕双鹰趁你没子弹发起攻击,你受到15点伤害,你的生命值剩余:{self.player_health}")else:print("燕双鹰没有讲话,你无法进入他的领域。他开始翻滚躲避你的攻击。")self.roll()def roll(self):if not self.is_speaking:print("燕双鹰开始翻滚,他现在是无敌的并且无法被选中。")self.is_rolling = Trueelse:print("燕双鹰在讲话,他的领域已经展开,无法翻滚。")def handle_surround(self):if not self.is_rolling:print("你尝试半天发现使用枪击不成,看了看周围,示意手下包抄燕双鹰:'兄弟们,上!活捉燕双鹰!'")print("你试图包围燕双鹰,但他突然使用了反包围技能!")self.is_surrounded = Trueself.passive_second()else:print("燕双鹰在翻滚,无法被包围。")def passive_second(self):if self.is_surrounded:print("燕双鹰触发了二段隐藏被动'后手先发',他比你更快一步!")# 模拟燕双鹰反击,减少玩家生命值self.player_health -= 20print(f"燕双鹰反击,你受到20点伤害,你的生命值剩余:{self.player_health}")# 在这里可以添加更多逻辑,比如玩家行动被打断或燕双鹰进行反击# 为了简化,我们在这里只重置包围状态self.is_surrounded = Falsedef handle_loud_speak(self):print("你大声对燕双鹰说话。")self.is_loud_spoken_to = Trueself.loud_response()def loud_response(self):if self.is_loud_spoken_to:print("燕双鹰掏出了枪,冷冷地说:'我的枪声音比你大,而且更快。'")# 模拟燕双鹰威慑,减少玩家生命值self.player_health -= 10print(f"你受到10点燕双鹰威慑伤害,你的生命值剩余:{self.player_health}")# 重置大声说话状态(根据游戏设计可能需要)self.is_loud_spoken_to = Falsedef handle_player_attack(self):damage = 0hit_rate = 0if self.player_attack_type == "普通攻击":damage = 0hit_rate = 0elif self.player_attack_type == "初级功法":damage = 5hit_rate = 0.02elif self.player_attack_type == "中级功法":damage = 12hit_rate = 0.05elif self.player_attack_type == "高级功法":damage = 20hit_rate = 0.08if random.random() < hit_rate:print(f"你的{self.player_attack_type}击中了燕双鹰,造成了{damage}点伤害!")self.miss_count = 0self.health -= damageprint(f"燕双鹰受到{damage}点伤害,燕双鹰的生命值剩余:{self.health}")# 明确玩家反击让燕双鹰掉血逻辑,燕双鹰受到伤害,生命值减少yan_shuang_ying_health_loss = damageprint(f"燕双鹰受到你的反击,生命值减少{yan_shuang_ying_health_loss}点!")# 燕双鹰有20%概率反击if random.random() < 0.2:counter_damage = damage * 0.5print(f"燕双鹰反击,对你造成了{counter_damage}点伤害!")self.player_health += counter_damageprint(f"你受到{counter_damage}点燕双鹰反击伤害,你的生命值剩余:{self.player_health}")else:print(f"你的{self.player_attack_type}未击中燕双鹰,燕双鹰轻松躲过了攻击。")self.miss_count += 1if self.miss_count >= 3:print("你连续多次攻击未命中,但越挫越勇,下一次攻击必定命中!")self.miss_count = 0# 直接命中,造成伤害并判断燕双鹰反击damage = 0hit_rate = 1if self.player_attack_type == "初级功法":damage = 5elif self.player_attack_type == "中级功法":damage = 12elif self.player_attack_type == "高级功法":damage = 20print(f"你的{self.player_attack_type}击中了燕双鹰,造成了{damage}点伤害!")self.health -= damageprint(f"燕双鹰受到{damage}点伤害,燕双鹰的生命值剩余:{self.health}")yan_shuang_ying_health_loss = damageprint(f"燕双鹰受到你的反击,生命值减少{yan_shuang_ying_health_loss}点!")if random.random() < 0.2:counter_damage = damage * 0.5print(f"燕双鹰反击,对你造成了{counter_damage}点伤害!")self.player_health += counter_damageprint(f"你受到{counter_damage}点燕双鹰反击伤害,你的生命值剩余:{self.player_health}")def main():print("欢迎来到燕双鹰小游戏!")yanyuangying = YanYuanYing()while True:# 显示双方生命值print(f"你的生命值:{yanyuangying.player_health},燕双鹰的生命值:{yanyuangying.health}")if yanyuangying.player_health < 20:cheat_choice = input("你血量已不足,是否开外挂(1.是/2.否):").strip()if cheat_choice == "1":print("你选择了开外挂,成功逃离燕双鹰的威胁,关闭手机永久远离燕双鹰,游戏结束!")breakelif cheat_choice == "2":print("你决定继续与燕双鹰对抗,生死在此一搏!")else:print("无效的选择,请重新输入。")print("请选择你的行动:")print("1. 讲话 2. 开枪 3. 包围 4. 大声说话 5. 使用功法 6. 退出")action_choice = input().strip()if action_choice == "1":yanyuangying.speak()elif action_choice == "2":yanyuangying.handle_shoot()elif action_choice == "3":yanyuangying.handle_surround()elif action_choice == "4":yanyuangying.handle_loud_speak()elif action_choice == "5":print("请选择功法或武器:")print("1. 普通攻击")print("2. 初级功法")print("3. 中级功法")print("4. 高级功法")attack_choice = input().strip()if attack_choice == "1":yanyuangying.player_attack_type = "普通攻击"elif attack_choice == "2":yanyuangying.player_attack_type = "初级功法"elif attack_choice == "3":yanyuangying.player_attack_type = "中级功法"elif attack_choice == "4":yanyuangying.player_attack_type = "高级功法"else:print("无效的选择,请重新输入。")continueyanyuangying.handle_player_attack()elif action_choice == "6":print("游戏结束,感谢你的参与!")breakelse:print("无效的行动,请重新输入。")# 判断游戏是否结束if yanyuangying.player_health <= 0:print("你已死亡,游戏结束!")breakelif yanyuangying.health <= 0:print("燕双鹰已被击败,游戏结束!")breakif __name__ == "__main__":main()

2.调试截图

四.总结反思

        原本只是出于一时兴起,我构思想到了一个好玩的Python小游戏,没想到却深陷其中。我总是觉得时间不够用,同时也觉得自己的作品还有些简陋。但不可否认的是,这完全是我独立思考和创作的成果。接下来,我会逐步对其进行完善和优化,并且逐一记录总结反思。

        本次优化后,虽然无法战胜燕双鹰,不过好歹有了一战之力,并且整理了玩家的被动保证了一定的输出,最后就算打不过 也可以开挂遁走。现在有了一些功法,后续有时间再继续优化加一些道具等,模拟了与燕双鹰对抗的各种场景,并且后续一点点实现窗体上的动画操作,现阶段先按照文本小游戏完成代码逻辑上的实现。

        尽管我知道还有很多需要改进的地方,但我仍然希望记录下每一个版本的迭代过程,见证它的成长与蜕变。对之前版本代码感兴趣的朋友,欢迎查阅我的上一篇博客。同时,也期待各位大佬给予宝贵的建议和指导。

我不是挂王-用python实现燕双鹰小游戏-CSDN博客

整理不易,诚望各位看官点赞 收藏 评论 予以支持,这将成为我持续更新的动力源泉。若您在阅览时存有异议或建议,敬请留言指正批评,让我们携手共同学习,共同进取,吾辈自当相互勉励!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com