OC继承课后练习_打僵尸

#import <Foundation/Foundation.h>

#import "Zombies.h"

#import "DefenseZombies.h"

#import "DrumZombies.h"

int main(int argc, const char * argv[])

{


    @autoreleasepool {

        

        Zombies *f1 = [[Zombies alloc]initWithKinds:@"普通僵尸" total:50 lose:3];

        DefenseZombies * f2 = [[DefenseZombies alloc]initWithKinds:@"路障僵尸" total:80 lose:2 defenseType:@"坚果"];

        DrumZombies *f3 = [[DrumZombies alloc]initWithKinds:@"铁通僵尸" total:120 lose:1 defenseType:@"铁桶" weakness:@"吸铁石"];

        

        

//        [f2 breaken];

//        [f3 absorb];

        int m = 0;

    while ([f1 total] != 0 || [f2 total] != 0 ||[f3 total] != 0) {

            

            for (NSInteger  i = [f1 total]; i > 0 ; i= [f1 total] ) {


                [f1 lose:3];

                [f1 leftTotal];

                if ([f1 total]<= 0) {

                    [f1 dead];

                    break;

                }

                m++;

                break;

            }

            for (NSInteger j = [f2 total]; j >0; j = [f2 total])

            {

                if ([f2 total] >40) {

                    

                    [f2 lose:2];

                    [f2 leftTotal];

                    m++;

                    break;

                }

                

                if ([f2 total] == 40  ) {

                    [f2 breaken];

                }

                if ([f2 total] <= 40 && [f2 total] > 0 ) {

                    [f2 lose:3];

                    [f2 leftTotal];

                    m++;

                    break;

                    

                }

                

                if ([f2 total] ==-2)

                {

                    [f2 dead];

                    [f2 lose:3];

                    [f2 leftTotal];

                    m++;

                        break;

                }

                

                break;

            }

            for (NSInteger k = [f3 total]; k >0; k =[f3 total]) {

                if ([f3 total] > 40) {

                    [f3 lose:1];

                    [f3 leftTotal];

                    m++;

                    break;

                }

                

                if ([f3 total]== 40) {

                    [f3 absorb];

                }

                if ([f3 total]<= 40) {

                    [f3 lose:3];

                    [f3 leftTotal];

                    m++;

                    break;

                    

                }

                break;

            }

            if ([f3 total]<=0) {

                [f3 dead];

                break;

            }

        

                    }

        

        NSLog(@"全部死亡一共攻击%d", m);

    }

    return 0;

}

#import "Zombies.h"


@implementation Zombies

-(id)initWithKinds:(NSString *)kinds

             total:(NSInteger )total

              lose:(NSInteger)lose

{

    self = [super init];

    if (self) {

        _kinds = kinds;

        _total = total;

        _lose = lose;

    }

    return self;

}

-(void)lose:(NSInteger)lose

{

    _lose = lose;

    NSLog(@"丢失血量%ld", _lose);

    

}

-(void)leftTotal

{

    _total = _total - _lose;

    NSLog(@"普通僵尸剩余血量%ld", _total);

}

-(void)setTotal:(NSInteger)total

{

    _total = total;

}

-(NSInteger)total

{

    return _total;

}

-(void)dead

{

    NSLog(@"普通僵尸死亡了");

}


@end


#import "DefenseZombies.h"


@implementation DefenseZombies

-(id)initWithKinds:(NSString *)kinds

             total:(NSInteger)total

              lose:(NSInteger)lose

       defenseType:(NSString *)defenseType

{

    self = [super initWithKinds:kinds total:total lose:lose];

    if (self) {

        _defenseType = defenseType;

    }

    return self;

}

-(void)lose:(NSInteger)lose

{

    _lose = lose;

    NSLog(@"路障僵尸丢失血量%ld", _lose);

}

-(void)breaken

{

    NSLog(@"不好意思,防具被打烂了");

}

-(void)setDefenseType:(NSString *)defenseType

{

    _defenseType = defenseType;

}

-(id)defenseType

{

    return _defenseType;

}

-(void)leftTotal

{

    _total = _total - _lose;

    NSLog(@"路障僵尸剩余血量%ld", _total);

}

-(void)dead

{

    NSLog(@"路障僵尸死亡了");

}


@end


#import "DrumZombies.h"


@implementation DrumZombies

-(id)initWithKinds:(NSString *)kinds

             total:(NSInteger)total

              lose:(NSInteger)lose

       defenseType:(NSString *)defenseType

          weakness:(NSString *)weakness

{

    self = [super initWithKinds:kinds total:total lose:lose defenseType:defenseType];

    if (self) {

        _weakness = weakness;

    }

    return self;

}

-(void)absorb

{

    NSLog(@"防具被磁铁吸走");

}

-(void)leftTotal

{

    _total = _total - _lose;

    NSLog(@"铁桶僵尸剩余血量%ld", _total);

}

-(void)lose:(NSInteger)lose

{

    _lose = lose;

    NSLog(@"铁桶僵尸丢失血量%ld", _lose);

}


-(void)dead

{

    NSLog(@"铁桶僵尸死亡了");

}


@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值