黑马程序员_使用oc写了个命令行21点小游戏

本文介绍了作者完成的一个使用Objective-C编写的命令行21点小游戏。通过阅读文章,读者可以了解到游戏的基本设计和实现过程,虽然作者认为类设计有待改进。文章附带了代码下载链接。
摘要由CSDN通过智能技术生成

-------------------------------------- android培训java培训ios培训期待与您交流! ---------------------------------

    今天把oc基础视频看完,就花了点时间写了一个命令行21点小游戏。感觉类的设计不是很好,但还是分享下:

main.m

//
//  main.m
//  简单21点游戏
//
//  Created by zhouyh on 14-4-3.
//  Copyright (c) 2014年 itcast. All rights reserved.
//


/*
 
 实验内容:设计一个 21 点的游戏
 
 游戏规则如下:两个玩家,一个是人,一个是电脑。首先由电脑分别随机派两张牌给电脑本身和人类玩家(牌不能重复,牌的表示方式为 花色牌号,如红桃 8),然后玩家通过自己判断再选择是否继续要牌。如果要,则继续随机派给玩家一张牌,若此时所有牌的点数之和大于 21,则判断玩家为输,如果不是,则玩家可以继续选择要牌与否。如果不要牌,则人类玩家阶段结束。轮到电脑。电脑阶段与玩家阶段基本相同。由电脑自己判断是否继续要牌,判断的最重要依据是刚好赢人类玩家就收手。而输赢是按照两家的点数与牌数,赢的一方是点数较大的一方,若点数相同,则取牌数量更多的一方胜,若牌数也一样,则不分胜负。点数的计算方式为:不论花色(红桃,黑桃,梅花,方块),数字牌(2 到 10)按照数字算,A 按照 1 来算, J,Q,K 均算成 10 点,JOKER 算0点。
 
 */


#import <Foundation/Foundation.h>
#import "Game21.h"

int main(int argc, const char * argv[])
{
    NSLog(@"欢迎使用21点游戏!");
    
    Game21 *game = [[Game21 alloc] init]; // 创建游戏
    
    while (1) {
        [game run]; // 运行游戏
    }
    return 0;
}

Card.h

//
//  Card.h
//  简单21点游戏
//
//  Created by zhouyh on 14-4-3.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Card : NSObject

//@property (nonatomic, assign) int no;

@property (nonatomic, strong) NSString *cardNo; // 牌号

@property (nonatomic, strong) NSString *huaSe; // 花色

// 通过数字来初始化牌
- (id)initWithNumber:(int)number;

// 计算每张牌的分数
- (int)jiFen;

@end

Card.m

//
//  Card.m
//  简单21点游戏
//
//  Created by zhouyh on 14-4-3.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "Card.h"

@implementation Card

// 通过数字来初始化牌
- (id)initWithNumber:(int)number
{
    if (self = [super init]) {
        NSString *huaSe[4] = {
            @"黑桃",
            @"红桃",
            @"梅花",
            @"方块",
        };
        NSString *cardNo[13] = {
            @"A",
            @"2",
            @"3",
            @"4",
            @"5",
            @"6",
            @"7",
            @"8",
            @"9",
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值