OC之对象传递游戏浅试

来源:互联网 发布:ladder mac版怎么用 编辑:程序博客网 时间:2024/06/13 12:07

学习完函数在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=[soldiernew];

    db->_name=@"大兵";

   

   soldier *enemy=[soldiernew];

   

    enemy->_name=@"炮灰";//敌人名字

    enemy->_life=30;

   

   Gun *ln=[Gunnew];

    ln->_name=@"加特林";

   Gun *nq=[Gunnew];

    nq->_name=@"鸟枪";

   

   

   bullet *a=[bulletnew];//新建2把枪不同威力

   bullet *b=[bulletnew];

    b->_amount=20;

    b->_power=10;

    a->_amount=5;

    a->_power=3;

   if(money>50){

    [dbUse:lnandBullet:bandShootToOther:enemy];//Q币到账使用加特林具有连发功能

    [dbUse:ln andBullet:b andShootToOther:enemy];

    [dbUse:ln andBullet:b andShootToOther:enemy];

    }else

        [dbUse:nqandBullet:aandShootToOther:enemy];//钱不够使用鸟枪

   }

士兵

import<Foundation/Foundation.h>

@classGun;

@classbullet;//提示程序以有这个类

@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);

   

    [gunfire:bulletandToOtherSoldier: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);

    [bulletflyTo: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

 

 

随便写写还有很多不足

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 身份证丢失怎么办健康证 个人怎么办武汉健康证 山海关古御壹号怎么办房本? 车玻璃被炮烧了怎么办 奔驰钥匙没电怎么办 婚内买的车离婚怎么办 离心风机噪音大怎么办 匹凸匹被st五牛怎么办 考不进去中学怎么办 教师体检来例假怎么办 老板拖欠农民工工资怎么办 公司破产拖欠员工工资怎么办 白玉蜗牛下蛋了怎么办 黄牛卖不出的票怎么办 鸡受风寒不产蛋怎么办 蛋鸡感冒不下蛋怎么办 牛肉煮老了怎么办 牛肉炖碎了怎么办 比值审敛法等于1怎么办 华为手机停止运行怎么办 易事通卡怎么办延期 三星手机照相机故障怎么办 凌晨一点到机场怎么办 凌晨3点醒来怎么办 凌晨四五点咳嗽怎么办 凌晨4点大便怎么办 熊猫小课付了费怎么办 华为手机系统升级后卡机怎么办 孕妇汗脚脚臭怎么办 巴基斯坦留学生丢失护照怎么办 vivox20耳机进水了怎么办 轴圆齿之间间隙大怎么办 浩辰cad2017保存不了怎么办 会议无poster版块怎么办 大四考研失败了怎么办 博士退学老师不同意怎么办? 贴双眼皮眼皮松怎么办 dpf灯亮了怎么办 60岁社保没交满怎么办 老公素质太差怎么办 耿彦波退休了太原怎么办