ios学习笔记 oc基础5

面向对象-石头剪刀布小游戏

电脑和人都是参赛者的子类
比赛和参赛者的复合
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值