Java实现斗地主案例
本文实例为大家分享了Java实现斗地主的具体代码,供大家参考,具体内容如下
importjava.util.ArrayList; importjava.util.Collections; publicclassDemoPoker{ publicstaticvoidmain(String[]args){ /** *一、准备牌 普通牌:2AK...3 花色:♥♠♣♦ 王牌:大王小王 创建一个集合,把牌组装之后存进去 */ String[]numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; String[]colors={"♥","♠","♣","♦"}; ArrayListpokerBox=newArrayList<>(); for(Stringcolor:colors){ for(Stringnumber:numbers){ pokerBox.add(color+number); } } pokerBox.add("大王"); pokerBox.add("小王"); /** *二、洗牌 staticvoidshuffle(List>list)使用默认的随机源随机置换指定的列表。 此处为了输出结果工整所以没有直接输出集合 */ Collections.shuffle(pokerBox); for(inti=0;i player01=newArrayList<>(); //玩家二 ArrayList player02=newArrayList<>(); //玩家三 ArrayList player03=newArrayList<>(); //底牌 ArrayList diPai=newArrayList<>(); for(inti=0;i =51){ diPai.add(faces); }elseif(i%3==0){ player01.add(faces); }elseif(i%3==1){ player02.add(faces); }elseif(i%3==2){ player03.add(faces); } } /** *四、看牌 直接输出每位玩家的集合 */ System.out.println("张无忌"+player01); System.out.println("张翠山"+player02); System.out.println("殷素素"+player03); System.out.println("底牌"+diPai); } }
带排序版的
packagecom.demo_2.poker; importjava.util.Collections; importjava.util.HashMap; importjava.util.LinkedList; importjava.util.List; publicclassPoker{ /** *一共要四步。一、备牌二、洗牌三、发牌四、看牌 目的:练习集合的用法 */ publicstaticvoidmain(String[]args){ /** *第一步:备牌 使用List接口中的of()方法添加并分别创建numbers和colors集合 */ //numbers:存储普通牌2、A、K...3从大到小 Listnumbers=List.of("2","A","K","Q","J","10","9","8","7","6","5","4","3"); //colors:存储四种花色♥、♠、♦、♣ List colors=List.of("♥","♠","♦","♣"); //创建一个Map集合存储索引和组装好的牌 HashMap pokerBox=newHashMap<>(); //创建一个List集合储存牌的索引 LinkedList pokerIndex=newLinkedList<>(); //先把大王、小王和下标分别放进Map的键和值里面,再向LinkedList里面存储下标,下标增加1 intindex=0; pokerBox.put(index,"大王"); pokerIndex.add(index); index++; pokerBox.put(index,"小王"); pokerIndex.add(index); index++; //组装牌:遍历两个List集合,使用Map接口中的put()方法给pokerBox添加键和值,并给LinkedList传下标 for(Stringnumber:numbers){ for(Stringcolor:colors){ pokerBox.put(index,color+number); pokerIndex.add(index); index++; } } /** *第二步:洗牌 使用Collocations类中的shuffler方法,传递参数pokerIndex */ Collections.shuffle(pokerIndex); /** *第三步:发牌 创建四个List集合,分别存储三位玩家和底牌 使用for循环遍历pokerIndex,i%3结果为0的给玩家1,1的给玩家2,2的给玩家3 */ LinkedList player01=newLinkedList<>(); LinkedList player02=newLinkedList<>(); LinkedList player03=newLinkedList<>(); LinkedList diPai=newLinkedList<>(); for(inti=0;i =51){ diPai.add(in); }elseif(i%3==0){ player01.add(in); }elseif(i%3==1){ player02.add(in); }elseif(i%3==2){ player03.add(in); } } //给玩家的牌排序,使用Collocations接口中的sort()方法排序 Collections.sort(player01); Collections.sort(player02); Collections.sort(player03); Collections.sort(diPai); /** *第四步:看牌 遍历排过序的List集合作为Map集合的键值获取对应的值 为提高代码复用性定义一个方法代替 */ print("令狐冲",player01,pokerBox); print("诸葛瑾",player02,pokerBox); print("司马懿",player03,pokerBox); print("底牌",diPai,pokerBox); } /** *看牌的方法: 参数: Stringname LinkedList list HashMap map */ publicstaticvoidprint(Stringname,LinkedList list,HashMap map){ System.out.print(name+":"); for(Integerkey:list){ System.out.print(map.get(key)+""); } System.out.println(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。