黑马程序员技术交流社区

标题: 士兵射击的问题,结果可以输入人名,代码如下: [打印本页]

作者: zhangsimin    时间: 2015-9-12 00:33
标题: 士兵射击的问题,结果可以输入人名,代码如下:

#import <Foundation/Foundation.h>

#pragma mark 子弹类的声明
@interface  Bullet:NSObject
{@public
    NSString * _size;   //子弹型号
    int _bulletCount;  //子弹数目
}

@end

#pragma mark 子弹类的实现
@implementation Bullet

@end





#pragma mark 枪类的声明

@interface Gun : NSObject
{//枪的属性
@public
    NSString * _size;
   
}
//枪的行为
-(void)fire:(Bullet *)bullet andName:(NSString *)_name;
@end

//枪类的实现  方法
#pragma mark 枪类的实现
@implementation Gun
//射击
-(void)fire:(Bullet *)bullet andName:(NSString *)_name{
    if(bullet->_bulletCount>0){
        bullet-> _bulletCount--;
        NSLog(@"%@用%@正在  突突的射击....,子弹剩余数:%d",_name,_size, bullet->_bulletCount);
        
    }else
        NSLog(@"子弹没有了,请放入子弹!!!");
   
}

@end

#pragma mark -
#pragma mark 人类的声明
@interface Soldier : NSObject
{//属性
@public
    NSString *_name;  //姓名
    int life;   //生命值
    int level;   //水平
}
//人的行为  开枪
-(void)kill:(Gun *)gun andBullet:(Bullet *) bullet andName:(NSString *)_name;

@end

#pragma mark 人类的实现
@implementation Soldier
//人的行为  让枪射击
-(void)kill:(Gun *)gun andBullet:(Bullet *) bullet andName:(NSString *)_name{
    [gun fire:bullet andName:@"许三多"];
}

@end



#pragma mark -

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //创建人的对象
        Soldier *per=[Soldier new];
        per->_name=@"许三多";
        per->life=99;
        per->level=3;
        //创建枪的对象
        Gun *gun=[Gun new];
        gun->_size=@"步枪";
        //创建子弹的对象
        Bullet *bullet=[Bullet new];
        bullet->_size=@"2mm的口径";
        bullet->_bulletCount=4;
        //战士开枪
        [per kill:gun andBullet:bullet andName:@"许三多"];
        
    }
    return 0;
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2