100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Java之棋牌游戏——编写一个斗地主洗牌发牌的程序 要求按照斗地主的规则完成洗牌发牌

Java之棋牌游戏——编写一个斗地主洗牌发牌的程序 要求按照斗地主的规则完成洗牌发牌

时间:2019-09-04 14:29:30

相关推荐

Java之棋牌游戏——编写一个斗地主洗牌发牌的程序 要求按照斗地主的规则完成洗牌发牌

编写一个斗地主洗牌发牌的程序,要求按照斗地主的规则完成洗牌发牌的过程。

规则描述:

每张牌由花色和数字组成(包括JQKA),还有大王、小王。

将54张牌打乱顺序,有3位玩家参与游戏,每人轮流一次摸一张牌,剩余3张作为底牌。最后,打印每人手中的纸牌和底牌。

实现思路:

1.生成54张牌

(1)创建两个集合,一个存储花色,一个存储数字。

(2)创建一个map集合,对每一张牌设置一个编号,然后通过嵌套循环组合成52张牌,

(3)最后再单独添加大王和小王。

2.洗牌:打乱排列顺序

创建一个数字集合(list),使用Collections.shuffle();

3. 发牌

(1)创建四个数字集合,分别代表3个玩家和底牌

(2)通过循环方式发牌。按照%3的余数作为判断标准。底牌就是编号大于51的牌

(3)创建四个字符串集合,把数字牌面转化成对应的字符串牌面,通过循环,将map集合对应的字符串添加到字符串集合中

4. 打印

代码实现:

package jiHe;import java.util.*;public class DouDiZhuText {public static void main(String[] args) {System.out.println("===========================生成牌================================");ArrayList<String> color = new ArrayList<String>();color.add("黑桃");color.add("红桃");color.add("方便");color.add("梅花");ArrayList<String> num = new ArrayList<String>();for(int i=2;i<=10;i++)num.add(i+"");num.add("J");num.add("Q");num.add("K");num.add("A");HashMap<Integer,String> map = new HashMap<Integer,String>();int index=0;//设置初始的编号for(String thisnum : num) {for(String thiscolor : color) {map.put(index++, thiscolor+thisnum); }} map.put(index++, "小王");map.put(index++, "大王");System.out.println(map);System.out.println("============================洗牌================================");ArrayList<Integer> cards = new ArrayList<Integer>();for(int i=0;i<=53;i++)cards.add(i);//按顺序排列的0---53个数字Collections.shuffle(cards);//打乱顺序System.out.println(cards); System.out.println("=======================生成玩家和底牌并发牌==========================");ArrayList<Integer> p1 = new ArrayList<Integer>();ArrayList<Integer> p2 = new ArrayList<Integer>();ArrayList<Integer> p3 = new ArrayList<Integer>();ArrayList<Integer> dp = new ArrayList<Integer>();for(int i=0;i<cards.size();i++) {if(i>=51)dp.add(cards.get(i));else if(i%3==1)p1.add(cards.get(i));else if(i%3==2)p2.add(cards.get(i));elsep3.add(cards.get(i));}Collections.sort(p1);Collections.sort(p2);Collections.sort(p3);Collections.sort(dp);ArrayList<String> sp1 = new ArrayList<String>();ArrayList<String> sp2 = new ArrayList<String>();ArrayList<String> sp3 = new ArrayList<String>();ArrayList<String> sdp = new ArrayList<String>();for(Integer key : p1) {sp1.add(map.get(key));}for(Integer key : p2) {sp2.add(map.get(key));}for(Integer key : p3) {sp3.add(map.get(key));}for(Integer key : dp) {sdp.add(map.get(key));}System.out.println("玩家一:"+sp1);System.out.println("玩家二:"+sp2);System.out.println("玩家三:"+sp3);System.out.println("底牌:"+sdp);}}

Java之棋牌游戏——编写一个斗地主洗牌发牌的程序 要求按照斗地主的规则完成洗牌发牌的过程

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。