java学习视频 数据结构 matlotlib mongoose transactions requirejs seo vue绑定点击事件 后台管理系统模板 安卓项目实战 小程序demo源码 spark算法 java常用的包 wordpress本地建站 python加入环境变量 javaqueue java日期 java的正则表达式 java的for循环 java的map java中class java成员变量 获取当前时间java linux安装 js选项卡 python入门经典 gtx1030 3389扫描器 bz2 博途v14安装教程 cad特性匹配 如何用ai设计字体 万能播放器电脑版 sdm439 现代操作系统 js递归函数 手机号正则表达式 大话5g total同级生2下载 ghost一键还原
当前位置: 首页 > 学习教程  > 编程语言

Python系列之案例分析

2020/7/24 9:29:06 文章标签:

import time,random

# 需要的数据和变量放在开头
player_list =  ['【狂血战士】','【森林箭手】','【光明骑士】','【独行剑客】','【格斗大师】','【枪弹专家】']
enemy_list = ['【暗黑战士】','【黑暗弩手】','【暗夜骑士】','【嗜血刀客】','【首席刺客】','【陷阱之王】']
players = random.sample(player_list,3)  
enemies = random.sample(enemy_list,3)
player_info = {}
enemy_info = {}

# 随机生成角色的属性
def born_role():
    life = random.randint(100,180)
    attack = random.randint(30,50)
    return life,attack

# 生成和展示角色信息
def show_role():
    for i in range(3):
        player_info[players[i]] = born_role()
        enemy_info[enemies[i]] = born_role()
    
    # 展示我方的3个角色
    print('----------------- 角色信息 -----------------')
    print('你的人物:')
    for i in range(3):
        print('%s  血量:%d  攻击:%d' 
        %(players[i],player_info[players[i]][0],player_info[players[i]][1]))
    print('--------------------------------------------')
    print('电脑敌人:')
    
    # 展示敌方的3个角色
    for i in range(3):
        print('%s  血量:%d  攻击:%d' 
        %(enemies[i],enemy_info[enemies[i]][0],enemy_info[enemies[i]][1]))
    print('--------------------------------------------')
    input('请按回车键继续。\n')  # 为了让玩家更有控制感,可以插入类似的代码来切分游戏进程。

# 角色排序,选择出场顺序。
def order_role(): 
    global players
    order_dict = {}
    for i in range(3):
        order = int(input('你想将 %s 放在第几个上场?(输入数字1~3)'% players[i]))
        order_dict[order] = players[i]  

    players = []
    for i in range(1,4):
        players.append(order_dict[i]) 
    
    print('\n我方角色的出场顺序是:%s、%s、%s' %(players[0],players[1],players[2]))
    print('敌方角色的出场顺序是:%s、%s、%s' %(enemies[0],enemies[1],enemies[2]))

# 角色PK
def pk_role(): 
    round = 1  
    score = 0
    for i in range(3):  # 一共要打三局
        player_name = players[i]  
        enemy_name = enemies[i] 
        player_life = player_info[players[i]][0]
        player_attack = player_info[players[i]][1]
        enemy_life = enemy_info[enemies[i]][0]
        enemy_attack = enemy_info[enemies[i]][1]

        # 每一局开战前展示战斗信息
        print('\n----------------- 【第%d局】 -----------------' % round)
        print('玩家角色:%s vs 敌方角色:%s ' %(player_name,enemy_name))
        print('%s 血量:%d  攻击:%d' %(player_name,player_life,player_attack))
        print('%s 血量:%d  攻击:%d' %(enemy_name,enemy_life,enemy_attack))
        print('--------------------------------------------')
        input('请按回车键继续。\n')

        # 开始判断血量是否都大于零,然后互扣血量。
        while player_life > 0 and enemy_life > 0:
            enemy_life = enemy_life - player_attack
            player_life = player_life - enemy_attack
            print('%s发起了攻击,%s剩余血量%d' % (player_name,enemy_name,enemy_life))
            print('%s发起了攻击,%s剩余血量%d' % (enemy_name,player_name,player_life))
            print('--------------------------------------------')
            time.sleep(1)
        else:  # 每局的战果展示,以及分数score和局数的变化。
            # 调用show_result()函数,打印返回元组中的result。
            print(show_result(player_life,enemy_life)[1])
            # 调用show_result()函数,完成计分变动。
            score += int(show_result(player_life,enemy_life)[0])
            round += 1
    input('\n点击回车,查看比赛的最终结果\n')

    if score > 0:
        print('【最终结果:你赢了!】\n')
    elif score < 0:
        print('【最终结果:你输了!】\n')
    else:
        print('【最终结果:平局!】\n')

# 返回单局战果和计分法所加分数。
def show_result(player_life,enemy_life):  # 注意:该函数要设定参数,才能判断单局战果。
    if player_life > 0 and enemy_life <= 0:
        result = '\n敌人死翘翘了,你赢了!'
        return 1,result  # 返回元组(1,'\n敌人死翘翘了,你赢了!'),类似角色属性的传递。
    elif player_life <= 0 and enemy_life > 0:        
        result = '\n悲催,敌人把你干掉了!'
        return -1,result
    else :
        result = '\n哎呀,你和敌人同归于尽了!'
        return 0,result

# (主函数)展开战斗流程
def main():
    show_role()
    order_role()
    pk_role()

# 启动程序(即调用主函数)
main()

 

 

 

2.练习

import random

# 出拳
punches = ['石头','剪刀','布']
computer_choice = random.choice(punches)
user_choice = ''
user_choice = input('请出拳:(石头、剪刀、布)')  # 请用户输入选择
while user_choice not in punches:  # 当用户输入错误,提示错误,重新输入
    print('输入有误,请重新出拳')
    user_choice = input()

# 亮拳
print('————战斗过程————')
print('电脑出了:%s' % computer_choice)
print('你出了:%s' % user_choice)

# 胜负
print('—————结果—————')
if user_choice == computer_choice:  # 使用if进行条件判断
    print('平局!')
elif (user_choice == '石头' and computer_choice == '剪刀') or (user_choice == '剪刀' and computer_choice == '布') or (user_choice == '布' and computer_choice == '石头'):
    print('你赢了!')
else:
    print('你输了!')
 


本文链接: http://www.dtmao.cc/news_show_50095.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?