2

“老年”程序员带你用Python玩街霸,你的童年用编程实现也很简单

 2 years ago
source link: https://blog.csdn.net/zihong522/article/details/121750219
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

“老年”程序员带你用Python玩街霸,你的童年用编程实现也很简单

同时被 3 个专栏收录
178 篇文章 9 订阅
318 篇文章 5 订阅

街霸应该是很多80后和大龄90后的童年记忆,虽然现在已经不再碰了,但是,并不妨碍对其的喜爱。今天来简单实现一下街霸的运作,如果是资深程序员,可以不用看下去。

“老年”程序员带你用Python玩街霸,你的童年用编程实现也很简单

现在我们在D盘的python-learning目录中创建 ko_street_fighter.py 文件, 并输入以下代码:

<pre>
#-*- coding:utf-8 -*-
# __filename__ = "ko_street_fighter.py"
# __author__ = "薯条社区"
# __date__ = "2019-05-16"import random 
# 导入random模块import time 
# 导入定时器, 本节程序代码使用定时器来实现倒计时效果'''下文中的strategies 使用直接定义法来定义一个列表,保存系统随机出的格斗策略'''
strategies = ["原地蹲防", "失误", "暴血连段", "失误", "伤害修正", "鬼步", "失误", "波升", "回血", "必杀"]
chunli_kungfu = ["气功拳", "旋转踢", "百裂脚", "霸山天升脚"]def main(): ''' :
return:void ''' fighter = 100 
# 定义整型变量fighter,用来保存街霸维加的血量 chunli = 100 
# 定义整型变量chunli,用来保存春丽的血量 
# 对战倒计时 print("3") time.sleep(1) 
print("2") time.sleep(1) 
print("1") time.sleep(0.2) 
print("Fight!") 
while True: 
# 循环语句,不断重复执行下面的代码 
if fighter <= 0 or chunli <= 0: 
# 春丽或boss其中一人血量为0时就退出战斗 break 
# 执行input函数获得键盘的输入内容 
kungfu = input("\n#--输入以下数字指令来挑战街霸维加:\n<0>气功拳 <1>旋转踢 <2>百裂脚 <3>霸山天升脚\n") 
kungfu = int(kungfu) 
# 对输入的字符串类型转换为整型,读者在输入时必须输入有效的数字,否则会抛出异常 
# 对于异常的处理,笔者会在后续的教程中进行介绍 
is_valid_attack = True 
# 定义布尔类型变量is_valid_attack 用来判断春丽是否采取了有效个攻击
 if kungfu >= 0 and kungfu < 4: 
print("你对街霸使出了{}".format(chunli_kungfu[kungfu])) 
else: is_valid_attack = False 
# 输入的指令错误,攻击无效 
print("春丽,这是在战斗,请输入正确的战斗指令!") 
strategy = random.choice(strategies) 
# 使用random模块中的choice函数,来随机选择列表里的值 
if strategy == "失误": print("街霸在对战中反击失误!") 
else: print("街霸在对战中对你使用了{}".format(strategy)) 
time.sleep(2) if strategy in ["原地蹲防", "回血", "鬼步"]: 
# 使用in运算符来查找strategey是否在列表中 if strategy == "回血" and fighter < 100: fighter += 5 
# 如果系统出的策略是失误或者伤害修正,并且春丽使出的是有效的攻击 
elif strategy in ["失误", "伤害修正"] and is_valid_attack: 
# 如果街霸回击失误,则街霸维加减掉10点伤害值 
if strategy == "失误": fighter -= 10 else: 
# 如果街霸使出的是伤害修正,则街霸维加减掉5点伤害值 fighter -= 5  
elif strategy == "必杀": 
# 如果街霸使出的是必杀,则春丽减掉20点伤害值 chunli -= 20 
# 复合运算符 else: 
# 如果街霸使出的是其它攻击策略,则春丽减掉10点伤害值 
chunli -= 10 
print("\n-*- 春丽现在的血量:{0} 维加现在的血量:{1} -*-".format(chunli, fighter)) 
if chunli <= 0: print("春丽,你战败了!") 
else: print("维加,我今天终于把你打败,父亲泉下有知,可以瞑目了!")
if __name__ == "__main__": main()</pre>

image.png

现在我们进入windows命令行,切换到D盘的python-learning目录,输入python ko_street_fighter.py,开始挑战街霸:

image.png

只是简单实现以下运作,没有时间也并不打算做个游戏,所以也没用继续下去,欢迎大家完善。

最后我这里有一些关于Python的学习资料,从入门到实战项目都有,关注并私信我“01”获取。欢迎大家自取


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK