人和狗

今天早上上班时候发现两件很有趣的事情。

事情一、路过我每天路过的一个拐角,看到一个人在对他养的狗狗说话。唉,想想,这个狗狗也真聪明,什么话都听得懂,全国各地若干种方言,狗竟然都能听懂。想想也是不可能的,人啊,就是喜欢想当然的。

事情二、我快到公司了,来了一辆三轮车,小狗就站在三轮车后边的座上,就看那人骑车要拐弯了,立刻回过头来,跟小狗再三叮嘱,坐好了,XXX(估计是小狗名字)。呵呵,人就是很喜欢想当然的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的人狗大站游戏的面向对象代码实现,包含人、、战斗等类: ```python import random class Person: def __init__(self, name, hp, atk): self.name = name self.hp = hp self.atk = atk def attack(self, dog): dog.be_attacked(self.atk) def be_attacked(self, dog_atk): self.hp -= dog_atk def is_alive(self): return self.hp > 0 class Dog: def __init__(self, name, hp, atk): self.name = name self.hp = hp self.atk = atk def attack(self, person): person.be_attacked(self.atk) def be_attacked(self, person_atk): self.hp -= person_atk def is_alive(self): return self.hp > 0 class Battle: def __init__(self, persons, dogs): self.persons = persons self.dogs = dogs def start(self): while len(self.persons) > 0 and len(self.dogs) > 0: attacker, defender = self.choose_attacker_and_defender() if isinstance(attacker, Person): attacker.attack(defender) else: attacker.attack(defender) self.check_alive() def choose_attacker_and_defender(self): attacker = random.choice(self.persons + self.dogs) if isinstance(attacker, Person): defender = random.choice(self.dogs) else: defender = random.choice(self.persons) return attacker, defender def check_alive(self): self.persons = [person for person in self.persons if person.is_alive()] self.dogs = [dog for dog in self.dogs if dog.is_alive()] # 测试代码 persons = [Person("Tom", 100, 10), Person("Jerry", 80, 15)] dogs = [Dog("Spike", 120, 8), Dog("Tyke", 80, 12), Dog("Tuffy", 60, 20)] battle = Battle(persons, dogs) battle.start() print("Result:") print("Persons:") for person in persons: print(f"{person.name}, HP: {person.hp}") print("Dogs:") for dog in dogs: print(f"{dog.name}, HP: {dog.hp}") ``` 在上面的代码中,我们定义了`Person`和`Dog`两个类来表示人和,都具有`name`、`hp`和`atk`属性,以及`attack`和`be_attacked`方法。`Battle`类表示战斗,具有`start`方法开始进行战斗,`choose_attacker_and_defender`方法随机选择攻击者和防守者,`check_alive`方法检查战斗是否结束。 在测试代码中,我们生成了2个人和3只,然后创建`Battle`实例进行战斗,最后输出战斗结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值