Python回合制小游戏对战程序
1、新建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)
3、外套for循环,对战三局,三次随机赋值(血量 + 攻击力)
for i in range(3):
表示0,1,2三次循环,也就是对战三局
print('-------现在是第 %s 局-------'%i)
表示打印提示局数
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)
只要双方的血量为正,攻击就不断地循环,直至至少一方血量为零
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!!')
6、回合制,三局两胜,有可能出现先赢了两局的情况,因此当先胜了两局,那么游戏提前结束,附加判断条件如下:
if enemy_victory - player_victory>=2 or player_victory - enemy_victory >= 2:
break
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!!')
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’,如果不需要,请输入其他: