模拟发牌系统

package com.collection.MimicFightingLardlord;


import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;


public class MimicFigntingLardord {
/*
* 功能分析

* 1.组成54张扑克牌
* 2.将54张牌顺序打乱
* 3.三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张底牌。
* 4.查看三人手中的牌(按照牌的大小进行排序。底牌)
* 排序顺序  大王,小王  2,A K Q J 10 9 8 7 6 5 4 3 2

* 1准备牌 需要排序 map集合
* 2洗牌
* 3发牌
* 4看牌

*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//组合牌
//创建Map集合。键是编号,值是牌      无序集合
HashMap<Integer,String> pooker=new HashMap<Integer,String>();
//创建list集合,存储编号
ArrayList<Integer> pookerNumber=new ArrayList<Integer>();

String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
String[] colors={"♠","♥","♣","♦"};
//存储大小王
pooker.put(0, "大王");
pookerNumber.add(0);
pooker.put(1, "小王");
pookerNumber.add(1);



//定义整型变量 作为键出xian
int index=2;

//遍历数组 花色+点数,存储到Map集合
for(String number:numbers){
for(String color:colors){
pooker.put(index, color+number);
pookerNumber.add(index);
index++;

}
}

/* System.out.println(pooker);
System.out.println(pookerNumber);*/

//洗牌 将牌的编号打乱
Collections.shuffle(pookerNumber);
//System.out.println(pookerNumber);

//发牌功能,将牌编号,发给玩家集合,底牌集合
ArrayList<Integer> player1=new ArrayList<Integer>();
ArrayList<Integer> player2=new ArrayList<Integer>();
ArrayList<Integer> player3=new ArrayList<Integer>();
ArrayList<Integer> cards=new ArrayList<Integer>();

//发牌 采用的集合的索引%3
for(int i=0;i<pookerNumber.size();i++){
//先将底牌做好
if(i<3){
cards.add(pookerNumber.get(i));
}else if(i%3==0){
//索引的编号发给player
player1.add(pookerNumber.get(i));
}else if(i%3==1){
player2.add(pookerNumber.get(i));
}else if(i%3==2){
player3.add(pookerNumber.get(i));
}
}
//对玩家手中的牌进行编号
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);




//看牌 将玩家手中的编号,到Map集合中查找,根据键找值
look("马云 ",player1,pooker);
look("刘强东",player2,pooker);
look("王健林",player3,pooker);
look("底牌 ",cards,pooker);

}

public static void look(String name,ArrayList<Integer> player,HashMap<Integer,String> pooker){
//遍历ArrayList集合,获取元素。作为键,到集合中找值
System.out.print(name+":");
for(Integer key:player){
String value=pooker.get(key);
System.out.print(value+"  ");
}
System.out.println();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值