OC之对象传递游戏浅试

学习完函数在OC中的传递 以及结合之前的C语言 无聊之中写了一段小程序

 

 

 

 

程序执行结果如下

计算机生成了可选文字:2e15 一 11 . el 17 2 339 士 兵 练 习 [ 172 1785e31 ] 199 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2ø 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 为 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 为 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] 2e15 一 11 . el 17 2 7 . 299 士 兵 练 习 [ 172 1785e31 ] code: ø 请 充 值 人 民 币 恁 充 值 了 1 元 大 兵 使 用 加 特 林 发 射 发 射 子 弹 , 剩 余 子 弹 数 目 biu biubiu 炮 灰 中 了 一 枪 , 敌 人 血 大 兵 使 用 加 特 林 发 射 发 射 子 弹 . 剩 余 子 弹 数 目 biu biubiu 炮 灰 中 了 一 枪 , 敌 人 血 鱟 大 兵 使 用 加 特 林 发 射 发 射 子 弹 . 剩 余 子 弹 数 目 biu biubiu 敌 人 屁 了 P rog ram ended with exit

 

计算机生成了可选文字:2e15 一 11 . el 17 38 . 759 士 兵 练 习 [ 1725 20 2e15 一 11 . el 17 8 . 25 士 兵 练 习 [ 1725 2e15 一 11 . el 17 8 . 25 士 兵 练 习 [ 1725 2e15 一 11 . el 17 8 . 25 士 兵 练 习 [ 1725 5 2e15 一 11 . el 17 8 . 25 士 兵 练 习 [ 1725 2e15 一 11 . el 17 8 . 25 士 兵 练 习 [ 1725 为 27 code: ø : 1787117 ] : 1787117 ] : 1787117 ] : 1787117 ] : 1787117 ] : 1787117 ] 请 充 值 人 民 币 恁 充 值 了 2ø 元 大 兵 使 用 鸟 枪 发 射 发 射 子 弹 , 剩 余 子 弹 数 biu biubiu 炮 灰 中 了 一 枪 , 敌 人 血 P rog ram ended with exit

输入不同的数会有不同的结果 只简单的做了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

 

 

随便写写还有很多不足

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值