Java实现模拟斗地主发牌

分析

1.创建一个HashMap集合(因为牌的编号和牌的内容是一对键值对,所以用HashMap集合)

  • 2.创建一个ArrayList集合(将每一张牌所对应的编号存储起来,作为HashMap键值对里面的键)
  • 3.创建牌(包括花色,点数)和编号(index)
  • 4.从0开始向ArrayList里面存储编号,并存储对应的牌,同时向ArrayList里存储编号
  • 5.洗牌(洗牌时洗的是编号)
  • 6.发牌(发牌发的也是编号,为了保证排序,用TreeSet集合接收)
  • 7.看牌(遍历TreeMap集合,获取编号,到HashMap里去找相应的牌)

代码实现

import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Collections;
import java.util.HashMap;public class DouDiZhuLicensing {public static void main(String[] args) {HashMap hs=new HashMap();//创建牌盒ArrayList array=new ArrayList();//创建花色数组和点数数组String color[]= {"♥","♠","♣","♦"};String num[]= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//从0开始往HashMap里面存储编号,并存储对应的牌,同时向ArrayList里面存储编号即可//创建编号索引int index=0;//向HashMap里存牌for(String number:num) {for(String colors:color) {String card=colors.concat(number);hs.put(index, card);array.add(index);index++;}}hs.put(index, "小王");array.add(index);index++;hs.put(index, "大王");array.add(index);//洗牌(用shuffle方法随机array里的编号)Collections.shuffle(array);//发牌,创建TreeSet集合TreeSet player1=new TreeSet();TreeSet player2=new TreeSet();TreeSet player3=new TreeSet();TreeSet dipai=new TreeSet();for(int x=0;x=array.size()-3) {dipai.add(array.get(x));}else if(x%3==1) {player1.add(array.get(x));}else if(x%3==2) {player2.add(array.get(x));}else if(x%3==0) {player3.add(array.get(x));}}LookCard("地主", player1, hs);LookCard("农民1", player2, hs);LookCard("农名2", player3, hs);LookCard("底牌", dipai, hs);
}//看牌功能(根据TreeSet里存的牌的编号去HashMap里找相应的牌)public static void LookCard(String name,TreeSet ts,HashMap hm) {System.out.print(name+"的牌是 ");for(Integer key:ts) {String value=hm.get(key);System.out.print(value+" ");}System.out.println();}
}

运行结果

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部