OC打僵尸
来源:互联网 发布:地理空间数据云官网 编辑:程序博客网 时间:2024/06/04 17:46
#import <Foundation/Foundation.h>
#import "Zombie.h"
#import "BlockZombie.h"
#import "IronHatZombie.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
/*
打僵尸。需求:
定义普通僵尸类:实例变量:僵尸种类、僵尸总血量、僵尸每次失血量。方法:初始化、被打击失血、死亡。
定义路障僵尸类:实例变量:僵尸种类、僵尸总血量、僵尸每次失血量,道具,弱点。方法:初始化、被打击失血、失去装备、死亡。
定义铁桶僵尸类:实例变量:僵尸种类、僵尸总血量、僵尸每次失血量,道具,弱点。方法:初始化、被打击失血、失去装备、死亡。
For循环 模拟攻击,创建3个僵尸对象。
(1)、普通僵尸。总血量50,每次失血3.
(2)、路障僵尸。总血量80,有路障时,每次失血2,血量剩余一半时,失去路障,每次失血3.
(3)、铁桶僵尸。总血量120,有铁桶时,每次失血1,血量剩余1/3时,失去铁桶,每次失血3.
循环攻击过程中:每个僵尸被攻击时,输出本次丢失血量,剩余血量。丢失道具时,输出丢失的道具。僵尸死亡时,输出已死亡。
最后一个僵尸死亡时,攻击停止,循环结束。输出总攻击次数。
*/
Zombie * zombie = [[Zombie alloc] initWithKind:@"普通僵尸" hp:50 lostHp:3];
while (zombie->_currentHp > 0) {
[zombie lostHpMethod];
}
BlockZombie * blockZombie = [[BlockZombie alloc] initWithKind:@"路障僵尸" hp:80 lostHp:2 equipment:@"英武路障之盔" weakness:2];
while (blockZombie->_currentHp >0) {
[blockZombie lostHpMethod];
}
IronHatZombie * ironZombie = [[IronHatZombie alloc] initWithKind:@"铁桶僵尸" hp:120 lostHp:1 equipment:@"巨鲸之铁桶圣衣" weakness:3];
while (ironZombie->_currentHp >0) {
[ironZombie lostHpMethod];
}
}
return 0;
}
#import <Foundation/Foundation.h>@interface Zombie : NSObject{ /* 定义普通僵尸类:实例变量:僵尸种类、僵尸总血量、僵尸每次失血量。方法:初始化、被打击失血、死亡。 */ @public NSString * _kind;//种类 int _hp; int _lostHp; int _currentHp;//当前剩余的血量}- (id)initWithKind:(NSString *)kind hp:(int)hp lostHp:(int)lostHp;- (void)lostHpMethod;//被打击失血- (void)dead;//死透@end#import "Zombie.h"@implementation Zombie- (id)initWithKind:(NSString *)kind hp:(int)hp lostHp:(int)lostHp{ self = [super init]; if (self) { _kind = kind; _hp = hp; _lostHp = lostHp; _currentHp = hp; } return self;}- (void)lostHpMethod{ _currentHp = _currentHp - _lostHp; if (_currentHp <= 0) { //僵尸已经死亡 _currentHp = 0; NSLog(@"%@被削掉%d血,还有%d血",_kind,_lostHp,_currentHp); [self dead];//self用来调用自己类中的其他方法 } else { //如果没死,输出血量 NSLog(@"%@被削掉%d血,还有%d血",_kind,_lostHp,_currentHp); } }//被打击失血- (void)dead{ NSLog(@"%@死啦",_kind);}//死透@end#import "Zombie.h"@interface BlockZombie : Zombie{ NSString * _equipment; int _weakness;}- (id)initWithKind:(NSString *)kind hp:(int)hp lostHp:(int)lostHp equipment:(NSString *)equipment weakness:(int)weakness;- (void)lostEquipment;//丢失装备@end#import "BlockZombie.h"@implementation BlockZombie-(id)initWithKind:(NSString *)kind hp:(int)hp lostHp:(int)lostHp equipment:(NSString *)equipment weakness:(int)weakness{ self = [super initWithKind:kind hp:hp lostHp:lostHp]; if (self) { _equipment = equipment; _weakness = weakness; } return self;}- (void)lostEquipment{ _lostHp = 3;//装备丢失,每次掉血量增加 NSLog(@"%@的%@丢了",_kind,_equipment); _equipment = nil;//把装备扔掉}//重写掉血的方法-(void)lostHpMethod{//warning _weakness的作用 if ( _equipment!= nil && _currentHp <= _hp/_weakness) { [self lostEquipment]; } [super lostHpMethod];}@end#import "BlockZombie.h"@interface IronHatZombie : BlockZombie@end#import "IronHatZombie.h"@implementation IronHatZombie@end
0 0
- OC打僵尸
- OC 打僵尸
- OC打僵尸小样
- oc 打僵尸 定义僵尸类
- oc 打僵尸 定义僵尸类
- OC:打僵尸问题(类的问题)
- OC继承课后练习_打僵尸
- 模拟打僵尸(OC-继承题)
- OC:打僵尸问题(类的问题)
- OC前三讲小结及打僵尸的继承练习
- OC第三讲继承-模拟打僵尸
- OC-继承-初始化方法-便利构造器(练习题-打僵尸)
- Objective-C语言编写(OC)打僵尸小游戏源码
- 打僵尸。
- 打僵尸代码
- Objective-C打僵尸代码
- 植物打僵尸休闲花园外挂代码
- Objective-C中打僵尸问题解析
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- 致命的怀疑
- Calib3d.findHomography
- 讲解双手白嫩光滑的几点小常识
- 加载程序集的最佳做法(使用机器翻译的)
- OC打僵尸
- 不容易系列之(4)——考新郎
- PAT_1009. 说反话 (20)
- 派生类的构造函数赋值和析构函数执行顺序
- cocos2dx使用lua和protobuf
- 'ndk-build -n' 妙用
- 大乐观主义
- cocos2dx 关于CCArray使用时,函数返回后,地址为空
- lua5.2 可能会遇到的一些错误