oc 打僵尸 定义僵尸类


打僵尸。需求:

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

.h文件.

#import <Foundation/Foundation.h>

@interface Zombie : NSObject//定义普通僵尸类
{
    NSString *_type;
    NSInteger  _blood;
    NSInteger _loss;
}
- (id)initWithType:(NSString *)type blood:(NSInteger )blood loss:(NSInteger )loss;//自定义初始化方法
- (void)die;//僵尸死亡方法
- (NSInteger)lossBlood:(NSInteger)blood loss:(NSInteger)loss;//僵尸掉血方法
@end


#import <Foundation/Foundation.h>
@interface RoadblockZombie : NSObject//定义路障僵尸类
{
    NSString *_type;//类型
    NSString *_prop;//道具
    NSString *_weakness;//弱点
    NSInteger  _blood;//血量
    NSInteger _loss;//掉血量
    }
- (id)initWithType:(NSString *)type prop:(NSString *)prop blood:(NSInteger )blood loss:(NSInteger )loss;//自定义初始化方法
- (void)die;//僵尸死亡方法
- (NSInteger)lossBlood:(NSInteger)blood loss:(NSInteger)loss;//僵尸掉血方法
@end


@interface BucketZombie : NSObject//定义铁桶僵尸类
{
    NSString *_type;
    NSString *_prop;//道具
    NSString *_weakness;//弱点
    NSInteger  _blood;
    NSInteger _loss;
    }
- (id)initWithType:(NSString *)type prop:(NSString *)prop blood:(NSInteger )blood loss:(NSInteger )loss;//自定义初始化方法
- (void)die;//僵尸死亡方法
- (NSInteger)lossBlood:(NSInteger)blood loss:(NSInteger)loss;//僵尸掉血方法
@end


.m文件


#import "Zombie.h"
@implementation Zombie
- (id)initWithType:(NSString *)type blood:(NSInteger )blood loss:(NSInteger )loss{
    _type = type;
    _blood = blood;
    _loss = loss;
    return self;
}
- (void)die{
    NSLog(@"你们等着!");
}
- (NSInteger)lossBlood:(NSInteger)blood loss:(NSInteger)loss{
    _blood = blood - _loss;//初始血量不变,每次打击的血量累加达到每次打击掉血相同的效果
    _loss += loss;
    if (_blood < 0) {
        NSLog(@"我不行了");
    }else{
    NSLog(@"还有血量%ld",_blood);
    }
    return _blood;
}
@end

#import "RoadblockZombie.h"

@implementation RoadblockZombie
- (id)initWithType:(NSString *)type prop:(NSString *)road blood:(NSInteger )blood loss:(NSInteger )loss{
    _type = type;
    _prop = road;
    _blood = blood;
    _loss = loss;
    return self;
}
- (void)die{
    NSLog(@"你们等着!");
}
- (NSInteger)lossBlood:(NSInteger)blood loss:(NSInteger)loss{
    _blood = blood - _loss;
    _loss += loss;
    if (_blood <= 50) {//当血量低于50时,认为失去道具,变为普通僵尸
        _loss += 1;
        if (_blood <= 0) {
            NSLog(@"我不行了");
        }else{
        NSLog(@"我快不行了");
        NSLog(@"还有血量%ld",_blood);
        }
        
    }else{
 
        NSLog(@"还有血量%ld",_blood);
        }
    return _blood;
}
@end

#import "BucketZombie.h"

@implementation BucketZombie
- (id)initWithType:(NSString *)type prop:(NSString *)bucket blood:(NSInteger )blood loss:(NSInteger )loss{
    _type = type;
    _prop = bucket;
    _blood = blood;
    _loss = loss;
    return self;
}
- (void)die{
    NSLog(@"你们等着!");
}
- (NSInteger)lossBlood:(NSInteger)blood loss:(NSInteger)loss{
    _blood = blood - _loss;
    _loss += loss;
    if (_blood <= 50) {//当血量低于50时,认为失去道具,变为普通僵尸
        _loss += 2;
        if (_blood <= 0) {//防止输出血量为负数
            NSLog(@"我不行了");
        }else{
            NSLog(@"我快不行了");
            NSLog(@"还有血量%ld",_blood);
        }
        
    }else{
        
        NSLog(@"还有血量%ld",_blood);
    }
    return _blood;
}
@end


main函数


        Zombie *general = [[Zombie alloc] initWithType:@"general" blood:50 loss:3];
        NSInteger leftblood1 = 50;//剩余血量
        while (leftblood1 > 0) {
          leftblood1 = [general lossBlood:50 loss:3];
        }
        if (leftblood1 < 0) {
            [general die];
        }
        RoadblockZombie *road = [[RoadblockZombie alloc] initWithType:@"road" prop:@"Roadlock" blood:80 loss:2];
        NSInteger leftblood2 = 80;
        while (leftblood2 > 0) {
            leftblood2 = [road lossBlood:80 loss:2];
        }
        if (leftblood2 <= 0) {
            [road die];
        }
        BucketZombie *bucket = [[BucketZombie alloc] initWithType:@"BucketZombie" prop:@"Bucket" blood:120 loss:1];
        NSInteger leftblood3 = 120;
        while (leftblood3 > 0) {
            leftblood3 = [bucket lossBlood:120 loss:1];
        }
        if (leftblood3 <= 0) {
            [bucket die];
        }




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值