java实现麻将(集合的应用)

*实现功能点
实现麻将的准备牌、洗牌、发牌、看牌
知识点
集合知识
项目思路
思路介绍
Icon
麻将的功能需求分析
a:具体规则:

  1. 组装136张麻将
    条、筒、万加到一起的数目是108张
    东、西、南、北风、红中、白皮、发财是28张,总共136张
  2. 将136张牌顺序打乱
  3. 四个玩家参与游戏,四人交替摸牌,每次4张,3次,之后庄家摸2张,两张之间个索引相差4,其他人再摸一张,即庄家14张,其他每人13张,剩下的留作底牌。
  4. 查看四人各自手中的牌(按照牌的大小排序)、底牌*
import java.util.*;

/**
 * Description: 条strip 筒canister 万 ten thousand
 *
 * @Author Fann
 * @Data 2018/11/14
 */
public class Mahjong {
    //牌插入时候的序号,从1开始
    int n = 1;
    //插入的花色类型
    int[] num = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
    String[] typeOne = new String[]{"筒", "万", "条"};
    String[] typeTwo = new String[]{"东风", "西风", "南风", "北风", "红中", "白板", "发财"};

    LinkedList<Integer> idMahjong;          //存储牌的顺序,利用牌的Integer可以通过hashmap查询到花色.
    HashMap<Integer, String> idWithValue;    //key:牌的序号,value:花色
    ArrayList<ArrayList<Integer>> player;   //存储四位玩家的ArrayList,默认第一位庄

    /**
     * 默认构造方法
     */
    public Mahjong() {
        this.idMahjong = new LinkedList<Integer>();
        this.idWithValue = new HashMap<Integer, String>();
        this.player = new ArrayList<ArrayList<Integer>>( 4 );
        for (int i = 0; i < 4; i++) {
            player.add( new ArrayList<Integer>() );
        }
    }

    /**
     * 整理麻将,共136张 并且打乱.
     */
    public void arrangeMahjong() {
        //加入筒,万,条
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < typeOne.length; j++) {
                String s = num[i] + typeOne[j];
                f
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值