(1)
package doudizhu;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
/*
*斗地主的洗牌和發(fā)牌
* 規(guī)則:使用54張牌打亂順序持痰,三個(gè)玩家參與游戲毒费,每人17張牌,最后剩三張底牌
* 準(zhǔn)備牌:每張牌y由花色和數(shù)字組成
* 發(fā)牌
* 看牌
*/
public class Poker1
{
public static void main(String[] args)
{
ArrayList<String> pokerBox = new ArrayList<>();
ArrayList<String> numbers = new ArrayList<>();
ArrayList<String> colors = new ArrayList<>();
colors.add("?");
colors.add("?");
colors.add("?");
colors.add("?");
for (int i = 2; i <=10 ; i++) {
numbers.add(i+"");
}
numbers.add("A");
numbers.add("J");
numbers.add("Q");
numbers.add("K");
for(String color:colors)
{
for(String number:numbers)
{
pokerBox.add(color+number);
}
}
pokerBox.add("大王");
pokerBox.add("小王");
System.out.println(pokerBox);
Collections.shuffle(pokerBox);
System.out.println(pokerBox);
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
for (int i = 0; i <pokerBox.size() ; i++) {
String card=pokerBox.get(i);
if(i>=51)
{
dipai.add(card);
}
else
{
if(i%3==0)
{
player1.add(card);
}
else if(i%3==1)
{
player2.add(card);
}
else if (i%3==2)
{
player3.add(card);
}
}
}
System.out.println("小王的牌是:"+player1);
System.out.println("小李的牌是:"+player2);
System.out.println("小何的牌是:"+player3);
}
}
image.png
(2)
package day14;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Set;
public class MapDouDiZhu
{
public static void main(String[] args) {
// 創(chuàng)建map集合
HashMap<Integer, String> pokerMap = new HashMap<>();
// 花色和數(shù)字
ArrayList<String> colors = new ArrayList<>();
ArrayList<String> numbers = new ArrayList<>();
Collections.addAll(colors, "?","?","?","?");
Collections.addAll(numbers, "2","3","4","5","6","7","8","9","10","J","Q","K","A");
int count = 1;
pokerMap.put(count++, "大王");
pokerMap.put(count++, "小王");
// 初始化其他牌
for(String number : numbers){
for(String color: colors){
String card = color + number;
pokerMap.put(count++, card);
}
}
System.out.println(pokerMap);
// 打亂順序
Set<Integer> numberSet = pokerMap.keySet();
ArrayList<Integer> numberList = new ArrayList<>();
numberList.addAll(numberSet);
Collections.shuffle(numberList);
System.out.println(numberList);
// 創(chuàng)建 玩家和底牌編號(hào)集合
ArrayList<Integer> noP1 = new ArrayList<>();
ArrayList<Integer> noP2 = new ArrayList<>();
ArrayList<Integer> noP3 = new ArrayList<>();
ArrayList<Integer> dipaiNo = new ArrayList<>();
// 不發(fā)牌, 發(fā)編號(hào)
for (int i = 0; i < numberList.size(); i++) {
Integer no = numberList.get(i);
if (i >= 51){
dipaiNo.add(no);
}else if (i%3 == 0){
noP1.add(no);
}else if (i%3 == 1){
noP2.add(no);
}else {
noP3.add(no);
}
}
// 對(duì)手中的編號(hào)排序
Collections.sort(noP1);
Collections.sort(noP2);
Collections.sort(noP3);
Collections.sort(dipaiNo);
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
// 遍歷
for (Integer i : noP1){
String card = pokerMap.get(i);
player1.add(card);
}
for (Integer i : noP2){
String card = pokerMap.get(i);
player2.add(card);
}
for (Integer i : noP3){
String card = pokerMap.get(i);
player3.add(card);
}
for (Integer i : dipaiNo){
String card = pokerMap.get(i);
dipai.add(card);
}
System.out.println("馬云1" + player1);
System.out.println("馬云2"+ player2);
System.out.println("馬云3"+ player3);
System.out.println("底牌"+ dipai);
}
}
image.png