Python小游戏——反恐精英和

本文介绍了使用Python实现的反恐精英游戏代码片段,展示了角色的攻击逻辑和状态判定,同时展示了贪吃蛇游戏的登录和注册流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不说,上代码

反恐精英

import random   # 定义随机
class Person:
    def __init__(self, name):
        self.name = name
        self.hp = 100   # 共有变量 hp

    def __str__(self):
        return "%s当前生命值为%d" % (self.name, self.hp) # 返回对象调用return 显示当前值


class Hero(Person):
    def fire(self, p):

        hit = random.randint(1,100)     # 定义hit为命中率 产生随机数
        if hit > 20:                        # 命中率为80
            if p.hp == 0:
                print("%s都死了不要打了" % p.name)     # 判断对象的血量如果等于0时输出在鞭尸
            else:
                damage = random.randint(40, 60)    # 判断打中后 产生的随机伤害值
                print("%s向%s开了一枪,掉了%d血" % (self.name, p.name, damage))
                if p.hp < damage:   # 判断血量小于伤害值时  血量赋值为0
                    p.hp = 0
                else:
                    p.hp -= damage    # 伤害值 - 血量值 = 当前血量值
        else:
            print("没打中%s" % self.name)



    def __str__(self):
        state = ""             # 定义一个字符串state
        if self.hp == 100:
            state = "无伤"

        elif self.hp > 70 and self.hp < 100:

            state = "轻伤"


        elif self.hp > 1 and self.hp < 70:
            state = "重伤"

        elif self.hp <= 0:
            state = "挂了"
        return "%s的当前状态为%s" % (self.name, state)


class Bad(Person):
    def fire(self, p):
        damage = random.randint(1,10)
        hit = random.randint(1,100)
        if hit > 90:
            print("%s向%s开了一枪,掉了%d血" % (self.name, p.name, damage))
            if p.hp < damage:
                p.hp = 0
            else:

                p.hp -= damage
        else:
            print("%s没打中警察" % self.name)


def main():
    h = Hero("警察")
    bad1 = Bad("路人甲")
    bad2 = Bad("土匪已")
    bad3 = Bad("炮灰丙")
    while True:
        x = random.randint(1, 3)      # 定义随机数,等于1 时向bad1开枪.....
        if x == 1:
            h.fire(bad1)
        elif x == 2:
            h.fire(bad2)
        elif x == 3:
            h.fire(bad3)
        bad1.fire(h)
        bad2.fire(h)
        bad3.fire(h)
        print(h)
        print(bad1)
        print(bad2)
        print(bad3)
        print()
        if h.hp <= 0:
            print("%s死亡,游戏结束" % h.name)
            break
        if bad1.hp <= 0 and bad2.hp <= 0 and bad3.hp <= 0:
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值