学习完函数在OC中的传递 以及结合之前的C语言 无聊之中写了一段小程序
程序执行结果如下
输入不同的数会有不同的结果 只简单的做了2个判断
具体代码如下
mian函数
#import <Foundation/Foundation.h>
#import "soldier.h"
#import "bullet.h"
#import "Gun.h"
int main(int argc, const char * argv[]) {
int money;
NSLog(@"请充值人民币");
scanf("%d",&money);
NSLog(@"恁充值了%d元",money);
soldier *db=[soldier new];
db->_name=@"大兵";
soldier *enemy=[soldier new];
enemy->_name=@"炮灰";//敌人名字
enemy->_life=30;
Gun *ln=[Gun new];
ln->_name=@"加特林";
Gun *nq=[Gun new];
nq->_name=@"鸟枪";
bullet *a=[bulletnew];//新建2把枪不同威力
bullet *b=[bullet new];
b->_amount=20;
b->_power=10;
a->_amount=5;
a->_power=3;
if(money>50){
[db Use:ln andBullet:b andShootToOther:enemy];//Q币到账使用加特林具有连发功能
[db Use:ln andBullet:b andShootToOther:enemy];
[db Use:ln andBullet:b andShootToOther:enemy];
}else
[db Use:nqandBullet:a andShootToOther:enemy];//钱不够使用鸟枪
}
士兵 类
import <Foundation/Foundation.h>
@class Gun;
@class bullet;//提示程序以有这个类
@interface soldier : NSObject
{ @public
int _life;
NSString * _name;
}
-(void) Use:(Gun*)gun andBullet:(bullet *)bullet andShootToOther:(soldier *)other;//士兵用枪方法
@end
@implementationsoldier
- (void) Use:(Gun *)gun andBullet:(bullet *)bullet andShootToOther:(soldier *)other {
NSLog(@"%@使用%@发射",_name,gun->_name);
[gun fire:bullet andToOtherSoldier:other];
}
@end
枪类
#import "bullet.h"
#import <Foundation/Foundation.h>
@interface Gun : NSObject
{ @public
NSString *_name; //枪的型号
}
-(void) fire:(bullet*)bullet andToOtherSoldier:(soldier *)other;//朝敌人开枪方法
@end
@implementation Gun
-(void)fire:(bullet *)bulletandToOtherSoldier:(soldier *)other{//方法实现
NSLog(@"发射子弹,剩余子弹数目%d",bullet->_amount);
[bullet flyTo:other];
}
@end
子弹类
#import <Foundation/Foundation.h>
#import "soldier.h"
@interface bullet : NSObject
{
@public
int _amount; //子弹数量
int _power; //定义子弹威力
}
-(void) flyTo:(soldier *)enemy;
@end
@implementation bullet
-(void) flyTo:(soldier*)enemy{ //使用子弹方法
NSLog(@"biubiubiu");
enemy->_life -=_power;//传入子弹威力 扣除敌人血量
if(enemy->_life){
NSLog(@"%@中了一枪,敌人血量为%d",enemy->_name,enemy->_life);//提示敌人血量
if (_amount>0)
_amount--;
else
NSLog(@"请充值RMB");//子弹不够提示
}
else
NSLog(@"敌人嗝屁了");
}
@end
随便写写还有很多不足