模拟发牌系统

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
    评论
好的,可以为您提供一个简单的 Java 代码段来模拟洗牌和发牌过程: ```java import java.util.ArrayList; import java.util.Collections; public class ShuffleAndDealCards { public static void main(String[] args) { // 创建一个包含所有牌的 ArrayList ArrayList<String> cards = new ArrayList<>(); String[] suits = {"♥", "♠", "♣", "♦"}; String[] values = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; for (String suit : suits) { for (String value : values) { cards.add(value + suit); } } // 打印出所有牌 System.out.println("所有牌:"); System.out.println(cards); // 洗牌过程 Collections.shuffle(cards); // 打印出洗好的牌 System.out.println("洗好的牌:"); System.out.println(cards); // 发牌过程(假设有四个玩家) ArrayList<String> player1 = new ArrayList<>(); ArrayList<String> player2 = new ArrayList<>(); ArrayList<String> player3 = new ArrayList<>(); ArrayList<String> player4 = new ArrayList<>(); for (int i = 0; i < cards.size(); i++) { switch (i % 4) { case 0: player1.add(cards.get(i)); break; case 1: player2.add(cards.get(i)); break; case 2: player3.add(cards.get(i)); break; case 3: player4.add(cards.get(i)); break; } } // 打印出四个玩家手中的牌 System.out.println("玩家1 的牌:"); System.out.println(player1); System.out.println("玩家2 的牌:"); System.out.println(player2); System.out.println("玩家3 的牌:"); System.out.println(player3); System.out.println("玩家4 的牌:"); System.out.println(player4); } } ``` 这个代码段会创建一个包含所有牌的 ArrayList,然后使用 Collections.shuffle() 方法来洗牌。接着,使用一个 for 循环将牌分给四个玩家。最后,打印出四个玩家手中的牌。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值