python初学者,刚学到面向对象...
#双人对决
'''
name=玩家的名字;
hp基本属性固定100;
stochastic()玩家技能攻击,随机伤害5-29,随机到30再次给予10伤害
cut()普通攻击,固定伤害10
blood()增加血量,随机8-19,随机到20直接回复30血量
def boss()函数决定电脑攻击模式,3/5概率出普通攻击,1/5概率回血和咸鱼突刺
'''
import time #导入时间的包
import random #导入随机模块
class Hero:
def __init__(self,name): #初始函数
self.name=name #初始角色名
self.hp=100 #初始血量
def __str__(self): #直接打印对象,返回str类型,否则默认指向内存地址
return '【%s】血量值:%s'%(self.name,self.hp)
def stochastic(self,enemy): #设置技能攻击
hurt=random.randint(5,30) # 设置技能随机伤害
enemy.hp-=hurt #敌人随机减少血量
if hurt<=20:
print('{}对{}使用技能造成了伤害 -{}!'.format(self.name,enemy.name,hurt))
elif hurt>20 and hurt<30:
print('{}对{}使用技能造成了暴击 -{}!!'.format(self.name,enemy.name,hurt))
elif hurt==30:
print('{}对{}使用出了会心一击!!! -{}'.format(self.name,enemy.name,hurt))
enemy.hp-=10
print('会心一击造成二次伤害! -10')
def cut(self,enemy): #设置普通攻击
enemy.hp -= 10 #敌人固定减掉10滴血
print('{}捅了{}一刀,-10。'.format(self.name, enemy.name))
def blood(self): #设置回血技能
hp_rs=random.randint(8, 20) #设置回血随机数
if hp_rs<20:
self.hp+=hp_rs #随机数回血
print('{}使用了回血技能,增加{}血!'.format(self.name,hp_rs))
else:
self.hp+=30
print('{}触发了天籁之音,增加30血!'.format(self.name))
def boss(): #设置BOSS模式函数
cpu_rs=random.randint(1, 5)
if cpu_rs==1 or cpu_rs==2 or cpu_rs==3:
xyw.cut(player)
elif cpu_rs==4:
xyw.blood()
else:
print('咸鱼王使用了奥义,对你造成2连击!!\n咸鱼王:吃我咸鱼突刺!!\n{} -12\n{} -13'.format(player.name,player.name))
player.hp-=25
#创建2个实例化对象
player=Hero('玩家')
xyw=Hero('咸鱼王')
print('欢迎玩家挑战咸鱼王,双方初始血量100,准备开始吧!')
while True:
if player.hp <= 0 and xyw.hp <= 0: #双方血量同时低于0退出游戏
time.sleep(1) # 休眠暂停一秒钟
print('-' * 30) # 分隔符
print('你们同归于尽了...')
break
elif xyw.hp <= 0: #咸鱼王血量低于0退出游戏
time.sleep(1) # 休眠暂停一秒钟
print('-' * 30) # 分隔符
print('咸鱼王死了...')
print(player) #打印玩家血量
time.sleep(1) # 休眠暂停一秒钟
print('恭喜玩家获得胜利!')
break
elif player.hp <= 0: #玩家血量低于0退出游戏
time.sleep(1) # 休眠暂停一秒钟
print('-' * 30) # 分隔符
print('你死了...')
print(xyw) # 打印咸鱼王血量
time.sleep(1) # 休眠暂停一秒钟
print('咸鱼王对你发出了嘲讽...')
break
print('-' * 30) #分隔符
print(player) #打印玩家血量
print(xyw) #打印咸鱼王血量
print('-' * 30) #分隔符
userIn = int(input('(1)普通攻击(2)技能攻击(3)加血技能,请输入数字:'))
if userIn == 1:
player.cut(xyw) #玩家砍了咸鱼王一刀
print('咸鱼王准备中...')
time.sleep(1) #休眠暂停一秒钟
boss() #调用咸鱼王模式函数
elif userIn == 2:
player.stochastic(xyw) #玩家使用技能攻击咸鱼王
print('咸鱼王准备中...')
time.sleep(1) #休眠暂停一秒钟
boss() #调用咸鱼王模式函数
elif userIn == 3:
player.blood() #玩家使用回血技能
print('咸鱼王准备中...')
time.sleep(1) #休眠暂停一秒钟
boss() # 调用咸鱼王模式函数
else:
print('输入有误,请重新输入。')
time.sleep(1) #休眠暂停一秒钟
print('GAME OVER')