ios学习笔记 oc基础5
2015-08-12 19:13
405 查看
面向对象-石头剪刀布小游戏
电脑和人都是参赛者的子类比赛和参赛者的复合
main
// // main.m // oc_8.7_3 // // Created by dq on 15/8/7. // Copyright (c) 2015年 dq. All rights reserved. // #import <Foundation/Foundation.h> #import "Competition.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"==============================="); NSLog(@" 石头剪刀布小游戏 "); NSLog(@"==============================="); Competition *game = [Competition new]; int flag =1; while (flag) { NSLog(@"请选择: 1.比赛开始 2.退出比赛 "); int option; scanf("%d",&option); flag = [game game:option]; } NSLog(@"��结束"); NSLog(@"总局数为%d",game.sum); NSLog(@"你的赢的次数为%d 电脑赢的次数为%d",game.perWin,game.comWin); } return 0; }
Competiotion
// // Competition.h // oc_8.7_3 // // Created by dq on 15/8/7. // Copyright (c) 2015年 dq. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" #import "Computer.h" @interface Competition : NSObject /** * 纪录电脑和人赢的次数 以及总局数 */ @property(readonly,assign)int sum,perWin,comWin; /** * 参赛者 */ @property(nonatomic,strong)Competitor *competitor1,*competitor2; /** * 比赛控制界面 * * @param option 游戏者的选择 * * @return 返回 继续比赛 还是 退出比赛 */ - (int)game:(int)option; /** * 比赛规则 * * @param A A方出拳的结果 * @param B B方出拳的结果 * * @return 返回比较的结果 0 平局 1 A方胜 2 B方胜 4 没有按规则出拳 */ - (int)ruleA:(int)A B:(int)B; @end // // Competition.m // oc_8.7_3 // // Created by dq on 15/8/7. // Copyright (c) 2015年 dq. All rights reserved. // #import "Competition.h" @implementation Competition - (instancetype)init { self = [super init]; if (self) { _sum = 0; _perWin = 0; _comWin = 0; _competitor1 = [Person new]; _competitor2 = [Computer new]; } return self; } -(int)game:(int)option { int flag=1; switch (option) { case 1:{ NSLog(@"请输入 1 ✊ 2 ✂️ 3 布"); int result = [self ruleA:[_competitor1 chuquan] B:[_competitor2 chuquan]]; if (result==0) { NSLog(@"平局"); } else if (result ==1) { NSLog(@"你赢了"); _perWin++; }else if(result ==2) { NSLog(@"��胜"); _comWin++; } else { _comWin++; NSLog(@"你没有按规则出拳 所以��胜"); } break;} case 2: flag = 0; break; default:{ _sum--; NSLog(@"输入❌,请重新输入"); break;} } if (flag==0) { return 0; } _sum++; return 1; } -(int)ruleA:(int)A B:(int)B { if (A==0) { return 4; } if(A==B) return 0;//平局 else if ((A==1&&B==2)||(A==2&&B==3)||(A==3&&B==1)) return 1;//A方胜 else return 2;//B方胜 } @end
Person
// // Person.h // oc_8.7_3 // // Created by dq on 15/8/7. // Copyright (c) 2015年 dq. All rights reserved. // #import <Foundation/Foundation.h> #import "Competitor.h" @interface Person : Competitor @end // // Person.m // oc_8.7_3 // // Created by dq on 15/8/7. // Copyright (c) 2015年 dq. All rights reserved. // #import "Person.h" @implementation Person -(int)chuquan { int op; scanf("%d",&op); if (op>0&&op<=3) { return op; } return 0; } @end
computer
// // Computer.h // oc_8.7_3 // // Created by dq on 15/8/7. // Copyright (c) 2015年 dq. All rights reserved. // #import <Foundation/Foundation.h> #import "Competitor.h" @interface Computer : Competitor @end // // Computer.m // oc_8.7_3 // // Created by dq on 15/8/7. // Copyright (c) 2015年 dq. All rights reserved. // #import "Computer.h" @implementation Computer -(int)chuquan { int op = arc4random()%3+1; return op; } @end
Compertiter
// // Competitor.h // oc_8.7_3 // // Created by dq on 15/8/8. // Copyright (c) 2015年 dq. All rights reserved. // #import <Foundation/Foundation.h> @interface Competitor : NSObject /** * 出拳的结果 */ -(int)chuquan; @end // // Competitor.m // oc_8.7_3 // // Created by dq on 15/8/8. // Copyright (c) 2015年 dq. All rights reserved. // #import "Competitor.h" @implementation Competitor -(int)chuquan { return 0; } @end
相关文章推荐
- ios开发之手势动作状态细分state,同一视图添加两个手势
- IOS文件系统
- 【读书笔记】iOS-截屏功能的实现。
- 【读书笔记】iOS-截屏功能的实现。
- iOS_关联使用(一)
- iOS_关联使用(二)
- iOS之ViewController的多层presentViewController的dismiss问题
- iOS 中 setter and getter
- ios开发中全局变量的使用
- iOS常用的第三方框架
- IOS #import与#include和@class的区别
- IOS动画CABasicACnimationanimation
- iOS内存管理策略和实践
- IOS的水滴文件效果
- 安装nagios 登陆后提示nagios Internal Server Error
- iOS跳转到打电话
- iOS竖屏自动滚动或欢迎页
- iOS Crash文件分析]-如何使用symbolicatecrash工具
- iOS开发系列--地图与定位
- iOS 版本自动更新