本文共 1966 字,大约阅读时间需要 6 分钟。
代码如下
package poker;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;public class Poker { public static void main(String[] args) { //定义Map集合,键是编号,值存储牌的字符串 MappokerMap=new HashMap (); //定义list,储存编号 List pokerList = new ArrayList (); //定义变量,保存编号 int index=0; String[] colors= { "♠","♦","♥","♣"}; //定义13个点数数组 String [] numbers= { "3","4","5","6","7","8","9","10","J","Q","K","A","2"};//遍历数组,组合点数和花色 for(String number:numbers) { for(String color:colors){ //储存到Map集合中 pokerMap.put(index,color+number); //编号存储到List集合中 pokerList.add(index); index++; } } //储存王牌 pokerMap.put(52, "🃏"); pokerMap.put(53, "🃏"); pokerList.add(52); pokerList.add(53); //存储编号的List,元素随机排列 Collections.shuffle(pokerList);//定义4个集合,三个放玩家,一个放底牌 List player1 = new ArrayList (); List player2 = new ArrayList (); List player3 = new ArrayList (); List bottom = new ArrayList (); //循环遍历,储存编号的集合,进行发牌 for (int i = 0; i < pokerList.size(); i++) { //发底牌 if (i<3) { bottom.add(pokerList.get(i)); }else { if (i%3==0) { //发牌给玩家1 player1.add(pokerList.get(i)); } else if (i%3==1) { player2.add(pokerList.get(i)); }else if (i%3==2) { player3.add(pokerList.get(i)); } } //玩家集合,排序号的排序 Collections.sort(player1,Collections.reverseOrder()); Collections.sort(player2,Collections.reverseOrder()); Collections.sort(player3,Collections.reverseOrder()); Collections.sort(bottom,Collections.reverseOrder());//看牌,玩家集合中的编号,作为键,到Map集合中找值} look("刘德华", pokerMap, player1); look("周星驰", pokerMap, player2); look("周瑞发", pokerMap, player3); look("底牌", pokerMap, bottom); }/* * 定义看牌方法,遍历集合 * 需要编号集合,需要储存牌的Map集合 * */ public static void look(String name,Map map, List list){ System.out.print(name+": "); for(Integer key:list) { String value=map.get(key); System.out.print(value+" "); } System.out.println(); }}
转载地址:http://gkprn.baihongyu.com/