// 普通僵尸
@interface CommonZombie : NSObject{
NSString * _kind;
int _totalBlood;
int _everyDownBlood;
BOOL _state;
}
@property (nonatomic,copy) NSString * kind; // 僵尸种类
@property (nonatomic,assign) int totalBlood; // 僵尸总血量
@property (nonatomic,assign) int everyDownBlood; // 僵尸每次失血量
@property (nonatomic,assign) BOOL state; // 僵尸状态,YES为生,NO为死
- (id)initWithKind:(NSString *)kind TotalBlood:(int)totalblood EveryDownBlood:(int)everyDownBlood State:(BOOL)state;
- (void)sufferDownBlood;
- (void)isLiveOfDeath;
@end
@implementation CommonZombie
- (id)initWithKind:(NSString *)kind TotalBlood:(int)totalblood EveryDownBlood:(int)everyDownBlood State:(BOOL)state{
if (self = [super init]) {
_kind = kind;
_totalBlood = totalblood;
_everyDownBlood = everyDownBlood;
_state = state;
}
return self;
}
- (void)sufferDownBlood{
_totalBlood -= _everyDownBlood;
if (_totalBlood > 0) {
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余%i滴血",_kind,_everyDownBlood,_totalBlood);
} else {
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余0滴血",_kind,_everyDownBlood);
}
}
- (void)isLiveOfDeath{
if (_totalBlood < 0) {
NSLog(@"普通僵尸死亡");
_state = NO;
}
}
@end
@interface BarricadeZombie : CommonZombie
@property (nonatomic,copy) NSString * prop; // 僵尸道具
@property (nonatomic,copy) NSString * weakness; // 僵尸弱点
- (id)initWithKind:(NSString *)kind TotalBlood:(int)totalblood State:(BOOL)state EveryDownBlood:(int)everyDownBlood Prop:(NSString *)prop Weakness:(NSString *)weakness;
// 遭受攻击掉血
- (void)sufferDownBlood;
// 是生是死
- (void)isLiveOfDeath;
@end
@implementation BarricadeZombie
- (id)initWithKind:(NSString *)kind TotalBlood:(int)totalblood State:(BOOL)state EveryDownBlood:(int)everyDownBlood Prop:(NSString *)prop Weakness:(NSString *)weakness{
if (self = [super initWithKind:kind TotalBlood:totalblood EveryDownBlood:everyDownBlood State:state]) {
_prop = prop;
_weakness = weakness;
}
return self;
}
- (void)sufferDownBlood{
if (_totalBlood > 40 && _totalBlood <= 80 ) {
_totalBlood -= 2;
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余%i滴血",_kind,_everyDownBlood,_totalBlood);
} else if(_totalBlood <= 40 && _totalBlood > 0){
if (_totalBlood == 40) {
NSLog(@"道具--路障掉了,僵尸现在流血由2滴血变成了3滴血");
}
_everyDownBlood = 3;
_totalBlood -= 3;
if (_totalBlood > 0) {
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余%i滴血",_kind,_everyDownBlood,_totalBlood);
}else{
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余0滴血",_kind,_everyDownBlood);
}
}
}
- (void)isLiveOfDeath{
if (_totalBlood < 0) {
NSLog(@"路障僵尸死亡");
_state = NO;
}
}
@end@interface IronDrunZombie : CommonZombie
// 铁桶僵尸
@property (nonatomic,copy) NSString * prop; // 僵尸道具
@property (nonatomic,copy) NSString * weakness; // 僵尸弱点
- (id)initWithKind:(NSString *)kind TotalBlood:(int)totalblood State:(BOOL)state EveryDownBlood:(int)everyDownBlood Prop:(NSString *)prop Weakness:(NSString *)weakness;
// 遭受攻击掉血
- (void)sufferDownBlood;
// 是生是死
- (void)isLiveOfDeath;
@end
@implementation IronDrunZombie
- (id)initWithKind:(NSString *)kind TotalBlood:(int)totalblood State:(BOOL)state EveryDownBlood:(int)everyDownBlood Prop:(NSString *)prop Weakness:(NSString *)weakness{
if (self = [super initWithKind:kind TotalBlood:totalblood EveryDownBlood:everyDownBlood State:state]) {
_prop = prop;
_weakness = weakness;
}
return self;
}
- (void)sufferDownBlood{
if (_totalBlood > 40 && _totalBlood <= 120 ) {
_totalBlood -= 1;
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余%i滴血",_kind,_everyDownBlood,_totalBlood);
} else if(_totalBlood <= 40 && _totalBlood > 0){
if (_totalBlood == 40) {
NSLog(@"道具--铁桶掉了,僵尸现在流血由1滴血变成了3滴血");
}
_everyDownBlood = 3;
_totalBlood -= 3;
if (_totalBlood > 0) {
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余%i滴血",_kind,_everyDownBlood,_totalBlood);
}else{
NSLog(@"%@僵尸被攻击了,掉了%i滴血,剩余0滴血",_kind,_everyDownBlood);
}
}
}
- (void)isLiveOfDeath{
if (_totalBlood < 0) {
NSLog(@"铁桶僵尸死亡");
_state = NO;
}
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
CommonZombie * HMT = [[CommonZombie alloc]initWithKind:@"普通僵尸" TotalBlood:50 EveryDownBlood:3 State:YES];
BarricadeZombie * ZWS = [[BarricadeZombie alloc]initWithKind:@"路障僵尸" TotalBlood:80 State:YES EveryDownBlood:2 Prop:@"路障" Weakness:@"大喷蘑"];
IronDrunZombie * ZWP = [[IronDrunZombie alloc]initWithKind:@"铁桶僵尸" TotalBlood:120 State:YES EveryDownBlood:1 Prop:@"铁桶" Weakness:@"磁铁蘑菇"];
int count = 0;
while (ZWP.state == YES) {
if (HMT.state == YES) {
[HMT sufferDownBlood];
[HMT isLiveOfDeath];
}
if (ZWS.state == YES) {
[ZWS sufferDownBlood];
[ZWS isLiveOfDeath];
}
[ZWP sufferDownBlood];
[ZWP isLiveOfDeath];
count++;
}
NSLog(@"一共攻击了%i次",count);
}
return 0;
}
2494

被折叠的 条评论
为什么被折叠?



