注册 登录
Python项目实战

第一章:猜谜游戏

第二章:街霸游戏

第三章:购物系统

第四章:搜索引擎

首页 > Python项目实战 > 第二章:街霸游戏 > 2.1节:KO街霸

2.1节:KO街霸

薯条老师 2021-02-17 18:19:42 186415 0

编辑 收藏

KO街霸

特别调查员春丽突然收到了来自中尉查理的一封邮件,邮件里详细地说明了神月家族在美国唐人街举办的街霸挑战赛,挑战的终极boss正是街霸维加。春丽在很小的时候,父亲就被维加残忍地杀害,为报父仇,春丽毅然决然地买好了飞往唐人街的机票。

邪恶的维加正通过催眠术,控制着在擂台上饮败的格斗家们在世界各地执行暗杀计划。

隆远在印度修行,孤身一人的春丽能在擂台上挑战成功吗?

1613557536(1).jpg

程序完整源码

这是一个针对Python初学者的练手小程序,简单地模拟春丽与维加的格斗过程。有一定开发经验的同学可以对程序进行扩展,比如利用多进程来模拟春丽同时与多人进行格斗。

# __author__ = 薯条老师
# 导入random模块,执行random模块中的choice方法来随机获取列表中的元素
import random
import time


VEGA_STRATEGIES = ["原地蹲防", "失误", "回旋攻击", "失误", "伤害修正", "回血", "超必杀"]
CHUNLI_KUNFU = ["气功拳", "旋转踢", "百裂脚", "霸山天升脚"]


def countdown(seconds=3, message=""):
    """
    :param seconds: 倒数的秒数
    :param message:  倒计时结束后输出的提示信息
    :return:
    """
    for _ in range(seconds, 0, -1):
        _, _ = print(_), time.sleep(1)
    else:
        print(message)
        
        
def  generate_prompts(kunfu):
    """
    :param kunfu: 街霸格斗选手的格斗招数,为一个列表对象,例如["气功拳", "旋转踢"]
    :return: 返回用户指令输入的提示信息,为一个字符串对象
    """
    prompts = "\n"
    for index, value in enumerate(kunfu):
        prompts += "<{}>{}".format(index, value)
    prompts += "\n输入<>中的指令来挑战街霸:__\b\b"
    return prompts
    
    
    
def fight():
    # 定义整型变量vega,用来保存街霸维加的血量
    vega = 100
    # 定义整型变量chunli,用来保存春丽的血量
    chunli = 100
    blood = 5
    prompts = generate_prompts(CHUNLI_KUNFU)
    countdown(message="Fight!")
    # 执行while循环,不断重复执行下面的代码
    while True:
        # 春丽或boss其中一人血量为0时就退出战斗
        if vega * chunli == 0:
            break
        # 执行input函数获得键盘的输入内容
        command = input(prompts)
        # 对输入的字符串类型转换为整型,读者在输入时必须输入有效的数字,否则会抛出异常
        try:
            command = int(command)
            _ = CHUNLI_KUNFU[command]
        except (ValueError, IndexError):
            print("春丽,这是在战斗,请输入正确的战斗指令!")
            continue
        print("春丽对街霸使出了{}".format(CHUNLI_KUNFU[command]))
        # 使用random模块中的choice函数,来随机选择列表里的值
        vega_strategy = random.choice(VEGA_STRATEGIES)
        if vega_strategy == "失误":
            print("街霸维加在对战中反击失误!")
        else:
            print("街霸维加在对战中对你使用了{}".format(vega_strategy))
        if vega_strategy in {"原地蹲防", "回血"}:
            if vega_strategy == "回血" and vega < 100:
                vega += blood
        elif vega_strategy == "失误":
            vega -= blood*2
        elif vega_strategy == "伤害修正":
            vega -= blood
        elif vega_strategy == "超必杀":
            chunli -= blood*2
        else:
            chunli -= blood
        chunli = 0 if chunli  <=0 else chunli
        vega = 0 if vega  <=0 else vega
        
        print("\n-*- 春丽现在的血量:{}  维加现在的血量:{} -*-".format(chunli, vega))
        time.sleep(3)
    if chunli == 0:
        print("春丽,你战败了!")
    else:
        print("维加,我今天终于把你打败,父亲泉下有知,可以瞑目了!")
        
        
        
if __name__ == "__main__":
    fight()

程序的输出界面

ko_street_fighter.jpg

最具实力的小班培训

来这里参加Python和Java小班培训的学员大部分都找到了很好的工作,平均月薪有11K,学得好的同学,拿到的会更高。由于是小班教学,所以薯条老师有精力把每位学员都教好。打算参加线下小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取学习资料:


欢迎 发表评论:

请登录

忘记密码我要注册

注册账号

已有账号?请登录