实现功能:士兵开枪 枪射击子弹
子弹类
名称:Bullet
属性:子弹个数,型号(_model)
枪类:
名称:Gun
属性:型号(_size),子弹个数(_bulletCount)
行为:射击
人类
名称:Soldier
属性:姓名(_name) life level(等级)
行为:跑 蹲 开枪 跳
#import <Foundation/Foundation.h>
#pragma mark 子弹类的声明
@interface Bullet:NSObject
{
@public
int _bulletCount; //子弹的个数
NSString *_size; //子弹的型号
}
@end
#pragma mark 子弹类的实现
@implementation Bullet
@end
#pragma mark 枪类的声明
@interface Gun:NSObject
{
@public
NSString *_size; //枪的型号
// int _bulletCount; //枪的子弹数
}
//枪射击的时候,需要子弹
-(void)shoot:(Bullet *) bullet;
@end
#pragma mark 枪类的实现
@implementation Gun
-(void)shoot:(Bullet *) bullet{
//如果子弹的个数>0再减1
//<=0提示没子弹
if(bullet->_bulletCount >0){
bullet->_bulletCount -= 1;
NSLog(@"用%@开始 biubiu .... 枪在射击!剩余子弹:%d",_size,bullet->_bulletCount);
}else{
NSLog(@"没子弹了,请上子弹!\n");
}
}
@end
#pragma mark soldier类的声明
@interface Soldier:NSObject
{
@public
int _life; //生命值
int _level; //级别
NSString *_name; //姓名
}
-(void)run; //跑
-(void)jump; //跳
-(void)dun; //蹲
-(void)fireByGun:(Gun*) gun; //开火
@end
#pragma mark soldier类的实现
@implementation Soldier
-(void)run{
NSLog(@"大兵正在跑");
} //跑
-(void)jump{
NSLog(@"大兵正在跳");
} //跳
-(void)dun{
NSLog(@"大兵蹲下了");
} //蹲
-(void)fireByGun:(Gun*) gun andBullet:(Bullet *)bullet{
//大兵让枪开火
[gun shoot:bullet];
} //开火
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建大兵
Soldier *soldier = [Soldier new];
soldier->_name = @"赵四";
soldier->_life = 34;
soldier->_level = 5;
//创建一把枪
Gun *gun = [Gun new];
gun->_size = @"小米加步枪";
//创建一个子弹类
Bullet *bullet = [Bullet new];
bullet->_bulletCount = 3;
bullet->_size = @"1cm";
//大兵开枪
[soldier fireByGun:gun andBullet:bullet];
[soldier fireByGun:gun andBullet:bullet];
[soldier fireByGun:gun andBullet:bullet];
[soldier fireByGun:gun andBullet:bullet];
}
return 0;
}