Python回合制小游戏对战程序

2025-09-28 22:15:36

1、新建Python文件

Python回合制小游戏对战程序

2、1)调用time函数以及random函数

     import time,random

2)定义变量并随机赋值(血量以及攻击力)

     player_life = random.randint(20,30)

     player_attack = random.randint(10,15)

     enemy_life = random.randint(20,30)

     enemy_attack = random.randint(10,15)

Python回合制小游戏对战程序

Python回合制小游戏对战程序

3、外套for循环,对战三局,三次随机赋值(血量 + 攻击力)

for i in range(3): 

表示0,1,2三次循环,也就是对战三局

print('-------现在是第 %s 局-------'%i)

表示打印提示局数

Python回合制小游戏对战程序

4、while循环,定义攻击扣血计算逻辑

while (player_life)>0 and (enemy_life>0):

           player_life=player_life-enemy_attack

           enemy_life=enemy_life-player_attack

           print('【玩家】\n剩余血量:%s\n攻击%d' % (player_life, player_attack))

           print('————————————————')

           time.sleep(1.5)

           print('【敌人】\n剩余血量:%s\n攻击%d' % (enemy_life, enemy_attack))

           print('————————————————')

           time.sleep(1.5)

只要双方的血量为正,攻击就不断地循环,直至至少一方血量为零

Python回合制小游戏对战程序

5、单局对战,结果判断 :

1)结果一:敌人血量先小于0,你赢了

2)结果二:你血量先小于0,敌人赢了

3)结果三:双方血量同时小于零,同归于尽了

          if player_life>0 and enemy_life<0:

 

               print('Yeah,you win!')

 

               player_victory+=1

 

           elif player_life<0 and enemy_life>0:

 

               print('Eenmmh,you false!')

 

               enemy_victory+=1

 

           elif player_life<0 and enemy_life<0:

 

               print('all false!!')

Python回合制小游戏对战程序

6、回合制,三局两胜,有可能出现先赢了两局的情况,因此当先胜了两局,那么游戏提前结束,附加判断条件如下:

if enemy_victory - player_victory>=2 or player_victory - enemy_victory >= 2:

           break

Python回合制小游戏对战程序

7、回合制,三局两胜,最终结果判断

1)你赢了两局,那么你赢了

2)敌人赢了两局,那么你输了

3)各赢一局,同归于尽一局;或者三局都打和了,那么最终还是打和了

   if player_victory>enemy_victory or player_victory-enemy_victory>=2:

       print('Finally, you win!!')

   elif player_victory<enemy_victory or enemy_victory-player_victory>=2:

       print('Finally, you false!!')

   else:

       print('What the fuck!!居然打平了!!')

注意:

单局战斗胜负,变量是有累计的,如图红框所示

player_victory=0(初始变量赋值)

 

enemy_victory=0(初始变量赋值)

if player_life>0 and enemy_life<0:

               print('Yeah,you win!')

               player_victory+=1 #变量累计

           elif player_life<0 and enemy_life>0:

               print('Eenmmh,you false!')

               enemy_victory+=1 #变量累计

           elif player_life<0 and enemy_life<0:

               print('all false!!')

Python回合制小游戏对战程序

Python回合制小游戏对战程序

8、外套while循环,表示不服气,还可以重新进行,三局两胜战斗:

while True:

a2 = input('如果要继续,请输入‘y’,如果不需要,请输入其他:')

if a2!='y':

       break

1、import time,random

 

player_victory=0

 

enemy_victory=0

 

while True:

 

   for i in range(3):

 

       print('-------现在是第 %s 局-------'%i)

 

       player_life = random.randint(20,30)

 

       player_attack = random.randint(10,15)

 

       enemy_life = random.randint(20,30)

 

       enemy_attack = random.randint(10,15)

 

       print('【玩家】\n血量:%s\n攻击%d'%(player_life,player_attack))

 

       print('————————————————')

 

       time.sleep(1)

 

       print('【敌人】\n血量:%s\n攻击%d'%(enemy_life,enemy_attack))

 

       print('————————————————')

 

       time.sleep(1)

 

       while (player_life)>0 and (enemy_life>0):

 

           player_life=player_life-enemy_attack

 

           enemy_life=enemy_life-player_attack

 

           print('【玩家】\n剩余血量:%s\n攻击%d' % (player_life, player_attack))

 

           print('————————————————')

 

           time.sleep(1.5)

 

           print('【敌人】\n剩余血量:%s\n攻击%d' % (enemy_life, enemy_attack))

 

           print('————————————————')

 

           time.sleep(1.5)

 

           if player_life>0 and enemy_life<0:

 

               print('Yeah,you win!')

 

               player_victory+=1

 

           elif player_life<0 and enemy_life>0:

 

               print('Eenmmh,you false!')

 

               enemy_victory+=1

 

           elif player_life<0 and enemy_life<0:

 

               print('all false!!')

 

       if enemy_victory - player_victory>=2 or player_victory - enemy_victory >= 2:

 

           break

 

   if player_victory>enemy_victory or player_victory-enemy_victory>=2:

 

       print('Finally, you win!!')

 

   elif player_victory<enemy_victory or enemy_victory-player_victory>=2:

 

       print('Finally, you false!!')

 

   else:

 

       print('What the fuck!!居然打平了!!')

 

   a2 = input('如果要继续,请输入‘y’,如果不需要,请输入其他:')

 

   if a2!='y':

 

       break

1、结果一:三局两胜,最终打和了,并不再进行战斗

-------现在是第 0 局-------

【玩家】

血量:20

攻击10

————————————————

【敌人】

血量:25

攻击14

————————————————

【玩家】

剩余血量:6

攻击10

————————————————

【敌人】

剩余血量:15

攻击14

————————————————

【玩家】

剩余血量:-8

攻击10

————————————————

【敌人】

剩余血量:5

攻击14

————————————————

Eenmmh,you false!

-------现在是第 1 局-------

【玩家】

血量:22

攻击12

————————————————

【敌人】

血量:20

攻击13

————————————————

【玩家】

剩余血量:9

攻击12

————————————————

【敌人】

剩余血量:8

攻击13

————————————————

【玩家】

剩余血量:-4

攻击12

————————————————

【敌人】

剩余血量:-4

攻击13

————————————————

all false!!

-------现在是第 2 局-------

【玩家】

血量:30

攻击13

————————————————

【敌人】

血量:21

攻击11

————————————————

【玩家】

剩余血量:19

攻击13

————————————————

【敌人】

剩余血量:8

攻击11

————————————————

【玩家】

剩余血量:8

攻击13

————————————————

【敌人】

剩余血量:-5

攻击11

————————————————

Yeah,you win!

What the fuck!!居然打平了!!

2、结果二:三局两胜,两单局打和,一局你赢,最终你赢了

-------现在是第 0 局-------

【玩家】

血量:27

攻击15

————————————————

【敌人】

血量:26

攻击10

————————————————

【玩家】

剩余血量:17

攻击15

————————————————

【敌人】

剩余血量:11

攻击10

————————————————

【玩家】

剩余血量:7

攻击15

————————————————

【敌人】

剩余血量:-4

攻击10

————————————————

Yeah,you win!

-------现在是第 1 局-------

【玩家】

血量:21

攻击14

————————————————

【敌人】

血量:20

攻击13

————————————————

【玩家】

剩余血量:8

攻击14

————————————————

【敌人】

剩余血量:6

攻击13

————————————————

【玩家】

剩余血量:-5

攻击14

————————————————

【敌人】

剩余血量:-8

攻击13

————————————————

all false!!

-------现在是第 2 局-------

【玩家】

血量:22

攻击15

————————————————

【敌人】

血量:25

攻击13

————————————————

【玩家】

剩余血量:9

攻击15

————————————————

【敌人】

剩余血量:10

攻击13

————————————————

【玩家】

剩余血量:-4

攻击15

————————————————

【敌人】

剩余血量:-5

攻击13

————————————————

all false!!

Finally, you win!!

如果要继续,请输入‘y’,如果不需要,请输入其他:

3、结果三:第一次三局两胜,你赢了,选择继续战斗,第二次三局两胜制中,居然打和了。

-------现在是第 0 局-------

【玩家】

血量:27

攻击15

————————————————

【敌人】

血量:26

攻击10

————————————————

【玩家】

剩余血量:17

攻击15

————————————————

【敌人】

剩余血量:11

攻击10

————————————————

【玩家】

剩余血量:7

攻击15

————————————————

【敌人】

剩余血量:-4

攻击10

————————————————

Yeah,you win!

-------现在是第 1 局-------

【玩家】

血量:21

攻击14

————————————————

【敌人】

血量:20

攻击13

————————————————

【玩家】

剩余血量:8

攻击14

————————————————

【敌人】

剩余血量:6

攻击13

————————————————

【玩家】

剩余血量:-5

攻击14

————————————————

【敌人】

剩余血量:-8

攻击13

————————————————

all false!!

-------现在是第 2 局-------

【玩家】

血量:22

攻击15

————————————————

【敌人】

血量:25

攻击13

————————————————

【玩家】

剩余血量:9

攻击15

————————————————

【敌人】

剩余血量:10

攻击13

————————————————

【玩家】

剩余血量:-4

攻击15

————————————————

【敌人】

剩余血量:-5

攻击13

————————————————

all false!!

Finally, you win!!

如果要继续,请输入‘y’,如果不需要,请输入其他:y

-------现在是第 0 局-------

【玩家】

血量:25

攻击12

————————————————

【敌人】

血量:24

攻击14

————————————————

【玩家】

剩余血量:11

攻击12

————————————————

【敌人】

剩余血量:12

攻击14

————————————————

【玩家】

剩余血量:-3

攻击12

————————————————

【敌人】

剩余血量:0

攻击14

————————————————

-------现在是第 1 局-------

【玩家】

血量:21

攻击15

————————————————

【敌人】

血量:26

攻击15

————————————————

【玩家】

剩余血量:6

攻击15

————————————————

【敌人】

剩余血量:11

攻击15

————————————————

【玩家】

剩余血量:-9

攻击15

————————————————

【敌人】

剩余血量:-4

攻击15

————————————————

all false!!

-------现在是第 2 局-------

【玩家】

血量:20

攻击10

————————————————

【敌人】

血量:22

攻击14

————————————————

【玩家】

剩余血量:6

攻击10

————————————————

【敌人】

剩余血量:12

攻击14

————————————————

【玩家】

剩余血量:-8

攻击10

————————————————

【敌人】

剩余血量:2

攻击14

————————————————

Eenmmh,you false!

What the fuck!!居然打平了!!

如果要继续,请输入‘y’,如果不需要,请输入其他:

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢