#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