打僵尸。

本文介绍了一款僵尸类游戏中的三种不同类型的僵尸对象设计:普通僵尸、路障僵尸和铁桶僵尸。每种僵尸都有其特定的生命值、失血量及特殊属性。文章通过Objective-C代码展示了如何创建这些对象并模拟打击过程。

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

打僵尸。需求:
   1、定义普通僵尸类:
 实例变量:僵尸种类、僵尸总血量、僵尸每次失血量。
 方法:初始化方法(设置僵尸种类,总血量)、被打击失血、死亡。
   2、定义路障僵尸类:
 实例变量:僵尸种类、僵尸总血量、僵尸每次失血量,道具,弱点。
  方法:初始化方法(设置僵尸种类,总血量)、被打击失血、失去装备、死亡。
3、定义铁桶僵尸类:
  实例变量:僵尸种类、僵尸总血量、僵尸每次失血量,道具,弱点。
  方法:初始化方法(设置僵尸种类,总血量)、被打击失血、失去装备、死亡。
4、在main.m中创建普通僵尸对象,设置总血量50,每次失血量为 3,没有道具。
5、在main.m中创建路障僵尸对象,设置总血量80,每次失血量为 2,设置道具为路障。

6、在main.m中创建铁桶僵尸对象,设置总血量120,每次失血量为 1,设置道具为铁桶。

main 函数

#import <Foundation/Foundation.h>
#import "CommonZombie.h"
#import "RoadblockZombie.h"
#import "IronDrumZombie.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        //定义三个僵尸对象 然后初始化
        CommonZombie *CZ = [[CommonZombie alloc]initWithBlood:50 loseBlood:3];
        RoadblockZombie *RZ = [[RoadblockZombie alloc]initWithBlood:80 loseBlood:2];
        IronDrumZombie *IDB = [[IronDrumZombie alloc]initWithBlood:120 loseBlood:1];
        //打击普通僵尸
        NSInteger blood = [CZ blood];//通过getter方法得到总血量赋给blood
        NSLog(@"开战吧");
        while (blood > 0) {
                NSLog(@"啊,,好疼");//收到伤寒
            [CZ setBLood:[CZ beated]];//总血量减少
            blood = [CZ blood];
        }
        if (blood <= 0) {
            [CZ die];
        }
        //打击路障僵尸
        [RZ setProps:@"路障"];
        blood = [RZ blood];//通过getter方法得到总血量赋给blood
        while (blood > 0) {
            NSLog(@"啊,,好疼");//受到伤害
            if (blood <= 50) {
                [RZ loseProps];//失去装备
                [RZ setLoseBlood:[CZ loseBlood]];//失去装备后掉血变为和普通僵尸一样
            }
            [RZ setBLood:[RZ beated]];//总血量减少
            blood = [RZ blood];
        }
        if (blood <= 0) {
            [RZ die];
        }
        //打击铁桶僵尸
        [IDB setProps:@"铁桶"];
        blood = [IDB blood];//通过getter方法得到总血量赋给blood
        while (blood > 0) {
            NSLog(@"啊,,好疼");//受到伤害
            if (blood <= 50) {
                [IDB loseProps];//失去装备
                [IDB setLoseBlood:[CZ loseBlood]];//失去装备后掉血变为和普通僵尸一样
            }
            [IDB setBLood:[RZ beated]];//总血量减少
            blood = [IDB blood];
        }
        if (blood <= 0) {
            [IDB die];
        }
    }
    return 0;
}

CommonZombie.m

#import "CommonZombie.h"

@implementation CommonZombie
- (id)initWithBlood:(NSInteger)blood loseBlood:(NSInteger)loseBlood{
    _blood = blood;
    _loseBlood = loseBlood;
    return self;
}//初始化僵尸种类总血量
- (NSInteger)beated{
    return _blood - _loseBlood;
}//每次被打失血
- (void)setBLood:(NSInteger)blood{
    _blood = blood;
}//设置总血量
- (NSInteger)blood{
    return _blood;
}//获得总血量
- (NSInteger)loseBlood{
    return _loseBlood;
}//得到失血量
- (void)die{
    NSLog(@"我还会回来的.....");
}
@end






RoadblockZombie.m

#import "RoadblockZombie.h"

@implementation RoadblockZombie
- (id)initWithBlood:(NSInteger)blood loseBlood:(NSInteger)loseBlood{
    _blood = blood;
    _loseBlood = loseBlood;
    return self;
}//初始化僵尸种类总血量//初始化僵尸种类总血量
- (NSInteger)beated{
    return _blood - _loseBlood;
}//每次被打失血
- (void)setBLood:(NSInteger)blood{
    _blood = blood;
}//设置总血量
- (void)loseProps{
    _props = Nil;
}//失去装备
- (void)setProps:(NSString*)props{
    _props = props;
}
- (NSInteger)blood{
    return _blood;
}//获得总血量
- (void)setLoseBlood:(NSInteger)loseBlood{
    _loseBlood = loseBlood;
}//设置失血量
- (void)die{
    NSLog(@"我路障僵尸还会回来的.....");
}//死亡




IronDrumZombie.m

#import "IronDrumZombie.h"

@implementation IronDrumZombie
- (id)initWithBlood:(NSInteger)blood loseBlood:(NSInteger)loseBlood{
    _blood = blood;
    _loseBlood = loseBlood;
    return self;
}//初始化僵尸种类总血量//初始化僵尸种类总血量
- (NSInteger)beated{
    return _blood - _loseBlood;
}//每次被打失血
- (void)setBLood:(NSInteger)blood{
    _blood = blood;
}//设置总血量
- (void)loseProps//设置道具
{
    _props = Nil;
}//失去装备
- (NSInteger)blood{
    return _blood;
}//获得总血量
- (void)setLoseBlood:(NSInteger)loseBlood{
    _loseBlood = loseBlood;
}//设置失血量
- (void)setProps:(NSString*)props{
    _props = props;
}
- (void)die{
    NSLog(@"我铁桶僵尸还会回来的.....");
}//死亡

@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值