打僵尸代码
练习
假设有两只僵尸,一只是普通僵尸,一只是道具僵尸,特征是:
- 普通僵尸:姓名、血量、失血量、 被攻击、死亡
- 道具僵尸:姓名、血量、失血量、道具、被攻击、丢失道具、死亡
代码如下
main.m 主文件
#import <Foundation/Foundation.h>
#import "Zombie.h"
#import "ToolZombie.h"
int main(int argc, const char * argv[]) {
@autoreleasepool{
Zombie *z1 = [[Zombie alloc] initWithName:@"普通僵尸" blood:50 loseBlood:3]; // 赋值
ToolZombie *tz1 = [[ToolZombie alloc] initWithName:@"道具僵尸" blood:50 loseBlood:3]; // 赋值
while((z1.dieFlag == NO || (tz1.dieFlag == NO)){ // 在两种僵尸均未死亡的情况下执行while
sleep(1); // 每隔1秒执行
[z1 beingAttacked]; // 普通僵尸被攻击
[tz1 beingAttacked]; // 道具僵尸被攻击
}
}
retur 0;
}
Zmbie.h父类文件
#impor <Foundation/Foundation.h>
@interface Zombie : NSObject
{
NSString *_name; // 名字
NSInteger _blood; // 血量
NSInteger _loseBlood; // 失血量
BOOL _dieFlag; // 标记
}
_ (instancetype)initWithName:(NSString *)name blood:(NSInteger)blood loseBlood:(NSInteger)loseBlood; // 初始化方法
- (void)beingAttacked; // 被攻击
- (BOOL)die; // 死亡
- (BOOL)dieFlag; // getter方法
@end
Zombie.m文件
#import "Zombie.h"
@implementation Zombie
-(instancetype)initWithName:(NSString *)name blood:(NSInteger)blood loseBlood:(NSInteger)loseBlood{ // 初始化方法
if (self = [super init]){
_name = name;
_blood = blood;
_loseBlood= loseBlood;
_dieFlag = NO;
}
return self;
}
-(