python游戏开发思路:模拟打怪游戏(决策论),怪兽(monster),玩家(hero)

游戏模式:
假设有怪兽(monster)和英雄(hero)两个角色,二者为敌对状态
假设两个角色初始血量为100,攻击力的伤害服从随机分布(7,17),二者相互攻击,判断谁获胜?

import random as rn             # 引入随机数
# 定义精灵
class Sprite:
    def __init__(self,name):
        self.blood = 100         # 假设初始血量为:100
        self.power = 12           # 假设基础攻击能力:12
        self.name = name

    def attack(self, monster):
        # 假设每一次攻击的伤害 服从随机分布(7,17)
        minus = rn.randrange(self.power - 5, self.power + 5)
        print(minus)
        if monster.has_living():
            monster.minus_blood(minus)
        print(monster.name + ' 剩余血量:\n' + str(monster.blood)+ "\n")
        # 输出剩余血量

    def minus_blood(self,num):
        self.blood -= num

    def has_living(self):         #判断是否还有血量
        if self.blood > 0:
            return True
        return False

m = Sprite('怪兽*哥斯拉')
h = Sprite('迪迦*奥特曼')
print(m.name + ' 的初始血量:100')
print(h.name + ' 的初始血量:100')

while m.has_living() and h.has_living():
    print(m.name + ' 对 ' + h.name + ' 造成伤害:' )
    m.attack(h)
    print(h.name + ' 对 ' + m.name + ' 造成伤害:')
    h.attack(m)

if m.has_living():
    print(m.name + ' 胜利!')
elif h.has_living():
    print(h.name + ' 胜利~!')
else:
    print(m.name + ' 和 ' + h.name + '均阵亡!')

运行结果:

怪兽*哥斯拉 的初始血量:100
迪迦*奥特曼 的初始血量:100
怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
8
迪迦*奥特曼 剩余血量:
92

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
16
怪兽*哥斯拉 剩余血量:
84

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
14
迪迦*奥特曼 剩余血量:
78

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
8
怪兽*哥斯拉 剩余血量:
76

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
9
迪迦*奥特曼 剩余血量:
69

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
8
怪兽*哥斯拉 剩余血量:
68

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
14
迪迦*奥特曼 剩余血量:
55

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
7
怪兽*哥斯拉 剩余血量:
61

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
9
迪迦*奥特曼 剩余血量:
46

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
8
怪兽*哥斯拉 剩余血量:
53

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
9
迪迦*奥特曼 剩余血量:
37

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
8
怪兽*哥斯拉 剩余血量:
45

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
15
迪迦*奥特曼 剩余血量:
22

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
12
怪兽*哥斯拉 剩余血量:
33

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
10
迪迦*奥特曼 剩余血量:
12

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
8
怪兽*哥斯拉 剩余血量:
25

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
10
迪迦*奥特曼 剩余血量:
2

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
16
怪兽*哥斯拉 剩余血量:
9

怪兽*哥斯拉 对 迪迦*奥特曼 造成伤害:
7
迪迦*奥特曼 剩余血量:
-5

迪迦*奥特曼 对 怪兽*哥斯拉 造成伤害:
14
怪兽*哥斯拉 剩余血量:
-5

怪兽*哥斯拉 和 迪迦*奥特曼均阵亡!
  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值