“”"
回合制游戏
每个角色都有hp和power,hp代表血量,power代表攻击力
hp的初始值未1000,power的初始值为200。
定义一个fight方法
my_final_hp = my_hp - enemy_power
enemy_final_hp = enemy_hp - my_power
两个hp进行对比,血量剩余多的人获胜
函数
循环/判断
三母运算
类型提示
“”"
"""
@Time :2021/10/26 20:25
@Author :Wesley
@File :demo_a_1026.PY
"""
# 定义fight函数实现游戏逻辑
def fight():
# 定义4个变量存放数据
my_hp = 1000
my_power = 200
enemy_hp = 1000
enemy_power = 200
# 定义最终血量计算方式
my_final_hp = my_hp - enemy_power
enemy_final_hp = enemy_hp - my_power
# 判断输赢
# if my_final_hp > enemy_final_hp:
# print("I win")
# elif my_final_hp < enemy_final_hp:
# print("Enemy win")
# else:
# print("All win")
# 三母运算,与if-else,只是语法简洁了
print("I win") if my_final_hp > enemy_final_hp else print("I lost")
fight()
def fight():
# 定义4个变量存放数据
my_hp = 1000
my_power = 200
enemy_hp = 1000
enemy_power = 199
# 加入循环,让游戏可以进行多轮
while True:
my_hp = my_hp - enemy_power
enemy_hp = enemy_hp - my_power
if my_hp <= 0:
print("I lost")
break
elif enemy_hp <= 0:
print("I win")
break
fight()
import random
def fight(enemy_hp, enemy_power):
# 定义4个变量存放数据
my_hp = 1000
my_power = 200
print(f"敌人的血量{enemy_hp},攻击力{enemy_power}")
# 加入循环,让游戏可以进行多轮
while True:
my_hp = my_hp - enemy_power
enemy_hp = enemy_hp - my_power
if my_hp <= 0:
print(f"我的剩余血量{my_hp}")
print(f"敌人的剩余血量{enemy_hp}")
print("I lost")
break
elif enemy_hp <= 0:
print(f"我的剩余血量{my_hp}")
print(f"敌人的剩余血量{enemy_hp}")
print("I win")
break
if __name__ == '__main__':
# 利用列表推导式生成hp
hp = [x for x in range(990, 1010)]
enemy_hp = random.choice(hp)
enemy_power = random.randint(190, 210)
fight(enemy_hp, enemy_power)
"""
@Time :2021/10/27 12:50
@Author :Wesley
@File :demo_b.PY
"""
"""
Bicyle 自行车类,有run 骑行方法,调用时显示骑行里程km
EBicyle 电动车类,继承Bicyle类,添加电池电量valume属性
两个方法:
fill_charge(vol) 用来充电,vol为电量
run(km) 用于骑行,每骑行10km消耗电量1度,当电量消耗调用
Bicyle方法,通过传入的骑行里程数,显示骑行结束
"""
class Bicyle:
def run(self, km):
print(f'一共用脚骑了{km}公里')
class EBicyle(Bicyle):
def __init__(self, valume):
self.valume = valume
def fill_charge(self, vol):
self.valume = self.valume + vol
print(f'充了{vol}度电,现在电量为{self.valume}')
def run(self, km):
power_km = self.valume * 10
if power_km >= km:
print(f'我使用了电瓶电量骑行了{km}公里')
else:
print(f'我使用了电瓶电量骑行了{power_km}公里')
# bike = Bicyle()
# bike.run(km - power_km)
super().run(km - power_km)
bike = Bicyle()
bike.run(10)
ebike = EBicyle(10)
ebike.fill_charge(3)
# 充了3度电,现在电量为13
ebike = EBicyle(10)
ebike.run(150)
# 我使用了电瓶电量骑行了100公里
# 一共用脚骑了50公里
"""
@Time :2021/10/27 13:16
@Author :Wesley
@File :demo_c.PY
"""
class Game:
def __init__(self, my_hp, enemy_hp):
# 定义4个变量存放数据
self.my_hp = my_hp
self.my_power = 200
self.enemy_hp = enemy_hp
self.enemy_power = 199
def fight(self):
# 加入循环,让游戏可以进行多轮
while True:
self.my_hp = self.my_hp - self.enemy_power
self.enemy_hp = self.enemy_hp - self.my_power
if self.my_hp <= 0:
print("I lost")
break
elif self.enemy_hp <= 0:
print("I win")
break
def rest(self, time_num):
print(f'休息{time_num}分钟')
class HouYi(Game):
# 重新定义一个defense属性
# final_hp = hp + defense - enemy_power
# enmey_final_hp = enemey_hp - power
def __init__(self, my_hp, enemy_hp):
self.defense = 1000
# 通过继承父类的构造函数,调用父类的属性
super().__init__(my_hp, enemy_hp)
def fight(self):
while True:
self.my_hp = self.my_hp - self.enemy_power
self.enemy_hp = self.enemy_hp - self.my_power
if self.my_hp <= 0:
print("I lost")
break
elif self.enemy_hp <= 0:
print("I win")
break
# game = Game()
# game.fight()
houyi = HouYi(1000, 1300)
houyi.fight()
houyi.rest(3)
# I lost
# 休息3分钟
# 装饰器:函数,加一些额外的功能
# 加日志,性能