您的位置:首页 > 移动开发 > IOS开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: