Python3-大魔王小项目-田忌赛马

本人今天第一次接触项目,花了4小时,不包括学习时间,特此留个纪念

记录一下那些年走过的坑,以资鼓励

英语不怎么好,随缘看看

内容:

类似田忌赛马,三盘两胜,属性人物在一定范围内随机,就这样了

code:

  1 import random,time
  2 
  3 # 需要的数据和变量
  4 player_list =  ['【狂血战士】','【森林箭手】','【光明骑士】','【独行剑客】','【格斗大师】','【枪弹专家】']
  5 enemy_list = ['【暗黑战士】','【黑暗弩手】','【暗夜骑士】','【嗜血刀客】','【首席刺客】','【陷阱之王】']
  6 
  7 list1=random.sample(player_list,3)#随机选取3个随机数
  8 list2=random.sample(enemy_list,3)
  9 
 10 list1_info={}
 11 list2_info={}
 12 dict1={}
 13 
 14 # 随机生成角色的属性
 15 def born_role():
 16     player_life       =random.randint(100,130)#模块.功能
 17     playeer_attack    =random.randint(30,50)
 18     return player_life,playeer_attack 
 19 
 20 # 生成和展示角色信息
 21 def show_role():
 22     print('--------田忌赛马--------')
 23     print('------角色信息-----')
 24     print('你的人物')
 25     for i in range(3):
 26         list1_info[list1[i]]=born_role()
 27         list2_info[list2[i]]=born_role()
 28     
 29     for i in range(3):
 30         print('%s生命:%d,攻击:%d'%(list1[i],list1_info[list1[i]][0],list1_info[list1[i]][1]))#键中取值
 31     print('------------------------')
 32     
 33     print('敌人的角色')
 34     
 35     for i in range(3):
 36         print('%s生命:%d,攻击:%d'%(list2[i],list2_info[list2[i]][0],list2_info[list2[i]][1]))
 37     print('------------------------')
 38     input('请按任意键继续')
 39     print('')
 40     
 41 # 角色排序,选择出场顺序。
 42 def order_role():
 43     global list1#用于改变全局变量
 44     for i in range(3):
 45         chose=input('你打算将 '+list1[i]+' 放在哪次出场?(选择1,2,3)')
 46         while chose not in ['1','2','3']:
 47             chose=input('你打算将 '+list1[i]+' 放在哪次出场?(选择1,2,3)')
 48         chose=int(chose)
 49         dict1[chose]=list1[i]
 50 
 51     list1=[]
 52     for i in range(1,4):
 53         list1.append(dict1[i])#将字典中的值加入列表
 54         
 55     print('')    
 56     print('我方出场的角色: %s %s %s '%(list1[0],list1[1],list1[2]))#注意添加括号
 57     print('敌人出场的角色: %s %s %s '%(list2[0],list2[1],list2[2]))
 58     print('')
 59     
 60 # 角色PK
 61 def pk_role():
 62     score=0
 63     rand=1
 64     for i in range(3):
 65         print('-----这是第%d局比赛----'%rand)
 66         print('%s vs %s'%(list1[i],list2[i]))
 67         print('%s生命:%d,攻击:%d'%(list1[i],list1_info[list1[i]][0],list1_info[list1[i]][1]))
 68         print('%s生命:%d,攻击:%d'%(list2[i],list2_info[list2[i]][0],list2_info[list2[i]][1]))
 69         print('')
 70         input('请按任意键继续')
 71         print('')
 72         rand+=1
 73         player_life       =list1_info[list1[i]][0]
 74         player_attack     =list1_info[list1[i]][1]
 75         enemy_life        =list2_info[list2[i]][0]
 76         enemy_attack      =list2_info[list2[i]][1]
 77         
 78         while (player_life>0) and (enemy_life>0):#and小写
 79             player_life -= enemy_attack
 80             enemy_life  -= player_attack
 81             print('%s发起了攻击,%s剩余血量为%d'%(list1[i],list2[i],enemy_life))
 82             print('%s发起了攻击,%s剩余血量为%d'%(list2[i],list1[i],player_life))
 83             print('-----------------------')
 84             time.sleep(0.5)
 85             
 86         result=show_result(player_life,enemy_life)
 87         score+=result[0]
 88         
 89         print(result[1])
 90         time.sleep(1.5)
 91     if score>0:
 92         print('')
 93         print('[结局为你赢了]\n')
 94         print('')
 95     elif score==0:
 96         print('')
 97         print('[结局为平局了]')
 98         print('')
 99     else:
100         print('')
101         print('[结局为你输了]')
102         print('')
103         
104 # 返回单局战果和计分法所加分数。
105 def show_result(player_life,enemy_life):
106     if player_life>enemy_life:
107         score=1
108         print('')
109         result='你赢了'
110         print('')
111     elif player_life<enemy_life:
112         score=-1
113         print('')
114         result='敌人赢了'
115         print('')
116     else :
117         score=0
118         print('')
119         result='平局'
120         print('')
121     return score,result
122     
123 # (主函数)展开战斗流程
124 def main():
125     show_role()
126     order_role()
127     pk_role()
128 
129 # 启动程序(即调用主函数)
130 main()

 

3月6号接触Python3到现在做个小程序,真心感觉学的不怎么扎实,各种磕磕绊绊。

 

更新日志-------------------------------

19.3.16

加了容错,加了时间间隔

 -----------------------------------------

愿风雨的路上,一路前行

posted @ 2019-03-15 21:18  雪锋尘  阅读(798)  评论(0)    收藏  举报