python如何导入外部数据_python外部数据源文件处理

'''

设定一个回合制2人对打游戏。

每个人物都有hp,power,skill

hp代表血量,power代表攻击力,

每三个回合可以使用一次skill,skill将攻击力翻倍

'''

import yaml #导入yaml

class Game: #定义Game类

def __init__(self): #定义init私有方法

battle = yaml.safe_load(open("homework-yaml.yaml")) #读取game.yaml文件并传递给battle

default = battle["default"] #读取字典中的 default

self.first = default[0] #读取default中第一个人

self.second = default[1] #读取default中第二个人

#读取第一个人的血量、攻击力和技能

self.first_hp = battle[self.first]["hp"]

self.first_power = battle[self.first]["power"]

self.first_skill = battle[self.first]["skill"]

#读取第二个人的血量、攻击力和技能

self.second_hp = battle[self.second]["hp"]

self.second_power = battle[self.second]["power"]

self.second_skill = battle[self.second]["skill"]

def fight(self): #定义 fight方法

round = 0 #初始化第一回合

while True:

print(self.first,"'s hp is",self.first_hp) #打印每一轮后第一个人的血量

print(self.second,"'s hp is", self.second_hp) #打印每一轮后第二个人的血量

round +=1 #每一回合round+1

if round % 3 == 0: #每3回合使用一次技能,分别计算第一个人和第二个人此回合后的血量

self.first_hp = self.first_hp - self.second_power * self.second_skill

self.second_hp = self.second_hp - self.first_power * self.first_skill

else: #非3的倍数回合时,分别计算第一个人和第二个人每回合后的血量

self.first_hp = self.first_hp - self.second_power

self.second_hp = self.second_hp - self.first_power

if self.first_hp <=0: #如果第一个人的血量先小于等于0,则判定为第一个人输,第二个人赢

print("{} lose!".format(self.first))

print("{} win!".format(self.second))

break

elif self.second_hp <=0: #如果第二个人的血量先小于等于0,则判定为第二个人输,第一个人赢

print("{} lose!".format(self.second))

print("{} win!".format(self.first))

break

game = Game() #实例化Game

game.fight() #调用fight方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值