2.PK小游戏

要求编写出一个可以实现自动PK,且三局两胜的PK小游戏。

把这个小游戏分为三部分:

1.人为定义属性,人为PK。

这部分非常简单,只需要一个print()函数就可以搞定。

#调用time模块
import time
print('【玩家】\n血量:100 攻击力:40')
time.sleep(2)
print('【敌人】\n血量:100 攻击力:20')
#定义敌人和玩家的基本信息
print('----------------------------------')
time.sleep(2)
#使代码停留2s再运行
print('你发起了攻击,【敌人】血量剩余60')
print('敌人发起了攻击,【玩家】血量剩余80')
print('----------------------------------')
time.sleep(2)
print('你发起了攻击,【敌人】血量剩余20')
print('敌人发起了攻击,【玩家】血量剩余60')
print('----------------------------------')
time.sleep(2)
print('你发起了攻击,【敌人】血量剩余-20')
print('敌人发起了攻击,【玩家】血量剩余40')
print('----------------------------------')
time.sleep(2)
print('敌人死了,你赢了')

这是最简单的,但是这样看起来很难看,因为再这里面【玩家】和【敌人】的基本信息都是我们自己人为设定的,这样太不公平了。所以我们要随机生成玩家和敌人的基本信息。

2.随机生成数字,自动pk

python中随机生成数字的函数是random模块下的randint()函数。

import random
a=random.randint(0,10)
print(a)
>>>10
>>>4

这样我们就可以随机生成【玩家】和【敌人】的血量和攻击力等基本信息。

import random
#调用random模块
player_life=random.randint(100,200)
enemy_life=random.randint(100,200)
player_attack=random.randint(30,50)
enemy_attack=random.randint(30,50)
#随机生成【玩家】和【敌人】的血量和攻击力基本信息。
print('【玩家】\n血量:'+str(player_life)+'攻击力:'+str(player_attack))
print('【敌人】\n血量:'+str(enemy_life)+'攻击力:'+str(enemy_attack))
#打印出【玩家】和【敌人】的血量和攻击力

在自动PK时,哪个的血量先小于等于0就结束,否则一直攻击下去,要实现这个就用到了while循环。并且在循环完以后还要判断谁的血量先小于等于0,这时用到if条件判断语句。

import time
import random
#调用time,random模块。
player_life=random.randint(100,200)
enemy_life=random.randint(100,200)
player_attack=random.randint(30,50)
enemy_attack=random.randint(30,50)
print('【玩家】\n血量:'+str(player_life)+'攻击力:'+str(player_attack))
print('【敌人】\n血量:'+str(enemy_life)+'攻击力:'+str(enemy_attack))
#随机生成并打印出【玩家】【敌人】的血量和攻击力。
print('--------------------------')
time.sleep(2)
#代码停留2s运行
while(player_life>0)and (enemy_life>0):
#while循环,【玩家】和【敌人】的血量同时大于0时继续循环。
	player_life=player_life-enemy_attack
	enemy_life=enemy_life-player_life
	print('敌人向你发起攻击,你的血量还剩'+str(player_life))
	print('你向敌人发起攻击,敌人的血量还剩'+str(enemy_life))
	print('-----------------------')
	time.sleep(2)
#if条件判断语句,判断哪个的血量先小于等于0.
if (player_life>0)and(enemy_life<=0):
	print('敌人被打败了,你赢了')
elif(player_life<=0)and(enemy_life>0):
	print('你被打败了,敌人赢了')
else:
	print('平局')
    

3.三局两胜,判断最终的胜利。

判断三局两胜,还需要定义两个新的变量player_win和enemy_win,根据player_win和enemy_win的大小作比较,得出最终的结果。

还是需要if条件判断语句判断最终胜利结果。

if player_win>enemy_win:
	print('你获得了最终的胜利!!!')
elif player_win<enemy_win:
	print('敌人获得了最终的胜利!!!')
else:
	print('你们打成了平局!!!')

因为是要进行三局比较,所以我们需要一个循环来完成三次pk。最后生成完整程序:

import time
import random

if __name__ == '__main__':
    number = 0
    player_win = 0
    enemy_win = 0
    while number < 3:
        number += 1
        print('-----第' + str(number) + '局开始')
        time.sleep(1)
        player_life = random.randint(200, 300)
        player_attack = random.randint(40, 50)
        enemy_life = random.randint(200, 300)
        enemy_attack = random.randint(40, 50)
        print('【玩家】\n血量:' + str(player_life) + '攻击力:' + str(player_attack))
        print('【敌人】\n血量:' + str(enemy_life) + '攻击力' + str(enemy_attack))
        print('--------------------')
        time.sleep(2)
        while (player_life > 0) and (enemy_life > 0):
            player_life = player_life - enemy_attack
            enemy_life = enemy_life - player_attack
            print('你受到敌人攻击,你的血量还剩下' + str(player_life))
            print('敌人受到你的攻击,敌人的血量还剩下' + str(enemy_life))
            print('---------------------')
            time.sleep(2)
        if (player_life > 0) and (enemy_life <= 0):
            print('你赢了')
            player_win += 1
        elif (player_life <= 0) and (enemy_life > 0):
            print('敌人赢了')
            enemy_win += 1
        else:
            print('平局')
    if player_win > enemy_win:
        print('你获得了最终的胜利!!!')
    elif player_win < enemy_win:
        print('敌人获得了最终的胜利!!!')
    else:
        print('你们打成了平局!!!')

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值