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
加了容错,加了时间间隔
-----------------------------------------
愿风雨的路上,一路前行
一路走来,风雨兼程,忘了来时,不忘归处

浙公网安备 33010602011771号