swift--广东麻将简化版

接上篇,本人之前使用一直做微信小程序,现初学SWIFT,主要通过这种小游戏练下手,不正之处请高手指定,不胜感谢。本人V信号:948943912。

// 广东麻将简化版
//
// Created by terry on 2018/8/21.
// 功能:
// 1.在控制台操作。麻将有东西南北中发白,用2颗骰子。
// 2. 创建一幅麻将并洗牌,丢骰子后根据点数发牌,并显示每个玩家的牌面。按点数确定谁是庄家,
// 3.发牌后,对每人的牌面进行排序并显示出来
// 3.可以碰,杠,不能吃牌;没有癞子。只能自摸。胡牌后显示结果(但由于是控制台,此项省略,后续再补上。)
// 4. IOS10.13+xcode8编译通过
// 5.运行效果:

开始创建玩家。。。
创建 4 个玩家,玩家创建结束。。。。
创建麻将成功。。。。
第1次洗牌。。。
第2次洗牌。。。
第3次洗牌。。。
第4次洗牌。。。
第5次洗牌。。。
第6次洗牌。。。
第7次洗牌。。。
第8次洗牌。。。
第9次洗牌。。。
第10次洗牌。。。
洗牌结束。。。
2个骰子分别是:2:4,结果是6
庄家是2…
1号玩家牌面是:
[7万]、[7万]、[8万]、[8万]、[8条]、[9条]、[2筒]、[3筒]、[5筒]、[6筒]、[8筒]、[南]、[北]、
2号玩家牌面是:
[1万]、[3万]、[5万]、[8万]、[2条]、[9条]、[1筒]、[1筒]、[1筒]、[7筒]、[东]、[东]、[北]、[中]、
3号玩家牌面是:
[1万]、[3万]、[4万]、[4万]、[7万]、[8万]、[5条]、[3筒]、[4筒]、[5筒]、[9筒]、[发]、[白]、
4号玩家牌面是:
[5万]、[9万]、[4条]、[4条]、[6条]、[7条]、[7条]、[东]、[西]、[中]、[中]、[发]、[白]、
Program ended with exit code: 0

设计思路:
// 1.设置4个玩家,位置定义:自己是1,左边是2,对面是3,右边是4
创建以下类:
MaJiang : 麻将父类;
MaJiangNumber : 数字牌类,继承自麻将父类。
MaJiangWind : 风牌类,继承自麻将父类。
MaJiangFactory : 麻将工厂类,用于生成麻将
MaJiangType : 枚举类型,设定麻将10种牌型
Tools : 工具类,专门用来进行计算
Player : 描述玩家;
Game:控制游戏流程
每个方法 和属性都有详细注释
类图

import Foundation

/// 玩家类
class Player{
var id:Int = 0 //ID
var name:String = “” //姓名
var playerMaJiangs:[MaJiang]=[] //玩家手上的牌
var fullNmae:String { //玩家的完整信息
return String(id)+”号玩家:”+name
}

init(id:Int,name:String) {
    self.id=id
    self.name=name
}

}

/// 麻将的类型
///
/// - Wan: 万
/// - Tiao: 条
/// - Tong: 筒
/// - Dong: 东风
/// - Nan: 南风
/// - Xi: 西风
/// - Bei: 北分
/// - HongZhong: 红中
/// - FaCai: 发财
/// - BaiBan: 白板
enum MaJiangType:Int{
c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值