翌日-マルチファイルの使用
2534 ワード
#import <Foundation/Foundation.h>
// main
#import "CZSoldier.h"
#import "CZGun.h"
#import "CZBullet.h"
int main(int argc, const char * argv[]) {
CZSoldier * soldier1 = [CZSoldier new];
soldier1->_name = @" ";
soldier1->_life = 100;
CZSoldier * enemy = [CZSoldier new];
enemy->_name = @" ";
enemy->_life = 20;
CZGun * gun = [CZGun new];
gun->_bulletCount = 10;
gun->_shootRange = 100;
CZBullet * bullet = [CZBullet new];
bullet->_power = 10;
[soldier1 shootTo:enemy usingGun:gun andBullet:bullet];
[soldier1 shootTo:enemy usingGun:gun andBullet:bullet];
return 0;
}
//CZSoldier.h
#import <Foundation/Foundation.h>
//@class
//@class
//#import
@class CZGun;
@class CZBullet;
@interface CZSoldier : NSObject
{
@public
NSString * _name;
int _life;
}
-(void) shootTo:(CZSoldier *) other usingGun:(CZGun *) gun andBullet:(CZBullet *) bullet;
@end
#import "CZSoldier.h"
#import "CZGun.h"
#import "CZBullet.h" // ,
@implementation CZSoldier
-(void) shootTo:(CZSoldier *) other usingGun:(CZGun *) gun andBullet:(CZBullet *) bullet
{
NSLog(@"%@ %@",_name,other->_name);
[gun shootTo: other usingBullet:bullet];
}
@end
//CZGun.h
#import <Foundation/Foundation.h>
//
#import "CZSoldier.h"
@class CZBullet;
@interface CZGun : NSObject
{
@public
int _bulletCount;//
double _shootRange;//
}
- (void) shootTo:(CZSoldier *)enemy usingBullet:(CZBullet *) bullet;
@end
#import "CZSoldier.h"
#import "CZGun.h"
#import "CZBullet.h"
@implementation CZGun
- (void) shootTo:(CZSoldier *)enemy usingBullet:(CZBullet *) bullet
{
NSLog(@" %@",enemy->_name);
[bullet flyTo:enemy];
}
@end
//CZBullet.h
#import <Foundation/Foundation.h>
@class CZSoldier;
@interface CZBullet : NSObject
{
@public
int _power;//
}
- (void) flyTo:(CZSoldier *) enemy;
@end
#import "CZBullet.h"
#import "CZSoldier.h"
@implementation CZBullet
- (void) flyTo:(CZSoldier *) enemy
{
if (enemy->_life >= 10) {
enemy->_life -= 10;
}else{
enemy->_life = 0;
}
NSLog(@" ");
if (enemy->_life == 0 ) {
NSLog(@"%@ ",enemy->_name);
}
}
@end