首先,写一个游戏你可以先从它的战斗系统开始。
在这教程中我们需引入''sys'',''random''模块
import sys
import random
之后就是要写玩家的战斗函数,以及它的体力值。
def fight(fight ,physical_strength):
if fight == 1:
return 10
if fight ==2 and physical_strength<=3:
physical_strength+=1
return random.choice([20,30])#舍命一击
if fight == 2 and physical_strength > 2:
print('体力不足,你已力竭,无法舍命一击')
return 1
在fight函数中,fight是攻击指令,由他来返回伤害的多少。而''physical_strength''则是体力值
当玩家输入的战斗指令为二时,它就会加一,当家到二时,玩家就没体力了,攻击自动变为1。
这里我们用''random''模块来随机暴击伤害。
像这样,当我们编写玩后,就要写防御函数了。
def fang(fang):
if fang == 1:
return 5 #普防
if fang == 2:
return random.choice([10,25]) #万防
这里 fang是其防御指令。当防御指令为2时用''random''这个模块来随机防御值。
当我们写完玩家的函数后,还要将人机的攻击函数写出来,而防御函数则可根据自己的要求来决定是否要写,这里人机和玩家共用一个防御函数''fang''。
人机的攻击模块可为
def fight2(fight ):
if fight == 1: #敌人的攻击系统
return 8
if fight ==2 :
return random.choice([16,26])#舍命一击
这里和''fight''函数类同,大家可以根据自己的需求决定是否添加体力条。
下面我们学要定义出人机和玩家的血量。
plyer= 100
emy = 100
player为玩家,emy为人机。
要将体力值应用到游戏中还需写出''体力条''和体力点。
cold = 0 #体力点
coldtime = 0 #体力条
接下来就是让玩家将攻击指令赋值,带入函数中了。
while True:
p_f = int(input('攻击>>'))
pf = fight(p_f,cold) #攻击值
p_y = int(input('防御>>'))
py = fang(p_y) #防御值
e_f = random.choice([1,2,2,2])
ef = fight2(e_f) #敌人攻击值
e_y = random.choice([1,2])
ey = fang(e_y) #敌人防御值
当然,不要忘了完善我们的体力环节了。
代码如:
if coldtime>10:
coldtime = 0
cold = 0
if p_f == 2:
coldtime+=0.5
if p_f == 1:
coldtime -=1.5
print('以减少冷却:1.5,now:',coldtime)
if coldtime <0:
coldtime = 0
print('冷却完毕')
print('冷却值:',coldtime)
if coldtime>0:
cold+=1
else:
cold = 0
这里,当战斗指令为2,coldtime也就是我们的体力条就会增加,而当它增加时,cold(体力点)也会随之增加,将其带入''fight''函数中''physical_strength''就可以了。
这里如上代码中有两个坚守体力条方法:1.当体力条大于十时,自动清零。2.使用普攻,每次使用都会减少1.5的体力条。
当体力条大于零时,体力点也会随之增加1点,
相反,体力点为零。
---------------------------------------------------------------------------------------------------------------------------------
下面就是我们的判定环节了
if ey - pf > 0:
em_now_blood = 0
emy = emy+em_now_blood
else:
emy = emy+ey-pf
if py - ef >0:
now_blood = 0 #打完扣血为0
plyer = plyer + now_blood
else:
plyer = plyer + py - ef
if plyer <= 0:
print('you are killed')
for i in range(10):
print('菜'*i)
sys.exit()
if emy <= 0:
print('you win')
sys.exit()
if emy <=0 and plyer<=0:
print('all died')
for i in range(10):
print('菜'*i)
sys.exit()
else:
print(f'emy:{emy},you:{plyer}')
print(f'敌人攻击:{ef},你的攻击:{pf}') #基本数值打印
print(f'敌人防御:{ey},你的防御:{py}')
print(f'你的冷却值:{coldtime},-- {cold}')
为防止防御值大于攻击值而导致角色或人机无缘无故加血,我们要写一个判定:
if py - ef >0:
now_blood = 0 #打完扣血为0
plyer = plyer + now_blood
else:
plyer = plyer + py - ef
这样,我们打完是负攻击值就会被定义为零。
当死了或赢了后,不要忘记用''sys.exit()''退出程序。
这样我们的战斗系统就编辑好了,只要在前面添加战斗剧情就是一个游戏了。