java实现斗地主发牌系统
本文实例为大家分享了java实现斗地主发牌系统的具体代码,供大家参考,具体内容如下
玩家类
packagecom.softeem.example; importjava.util.ArrayList; importjava.util.List; /** *玩家类 * */ publicclassPlayer{ privateStringname;//名字 privatebooleanlandowner;//是否地主 privateListcards=newArrayList<>();//手中的所有牌 publicPlayer(){ //TODOAuto-generatedconstructorstub } publicPlayer(Stringname){ super(); this.name=name; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicbooleanisLandowner(){ returnlandowner; } publicvoidsetLandowner(booleanlandowner){ this.landowner=landowner; } publicList getCards(){ returncards; } publicvoidsetCards(List cards){ this.cards=cards; } @Override publicStringtoString(){ returnname+"-是否地主:"+landowner+"->"+cards; } }
牌类
packagecom.softeem.example; /** *牌类 * */ publicclassCardimplementsComparable{ privateintnum;//点数 privateStringname;//牌面 privateStringflower;//花色 publicCard(){ //TODOAuto-generatedconstructorstub } publicCard(intnum,Stringname,Stringflower){ super(); this.num=num; this.name=name; this.flower=flower; } publicintgetNum(){ returnnum; } publicvoidsetNum(intnum){ this.num=num; } publicStringgetFlower(){ returnflower; } publicvoidsetFlower(Stringflower){ this.flower=flower; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } @Override publicintcompareTo(Cardc){ returnthis.num-c.num; } @Override publicStringtoString(){ returnname+"-"+flower+"-"+num; } }
packagecom.softeem.example; importjava.util.ArrayList; importjava.util.Collections; importjava.util.List; importjava.util.Random; importjava.util.Scanner; publicclassPokerGame{ staticListlist=newArrayList<>();//所有牌集合 staticList players=newArrayList<>();//玩家集合 staticintposition;//初始化当前发牌的位置 staticString[]flowers={"红桃","方片","梅花","黑桃"}; staticString[]names={"3","4","5","6","7","8","9","10","J","Q","K","A","2","小王","大王"}; /** *初始化所有牌面和玩家 */ static{ inti=0; //遍历所有的牌面值(除大小王:大小王无花色) for(;i last=list.subList(list.size()-3,list.size()); //将最后三张牌给地主 players.get(index).getCards().addAll(last); //显示 show(); } /** *显示发牌结果 */ publicvoidshow(){ //排序 Collections.sort(players.get(0).getCards()); Collections.sort(players.get(1).getCards()); Collections.sort(players.get(2).getCards()); players.stream().forEach(p->System.out.println(p)); start(); } publicvoidstart(){ System.out.println("***********欢乐斗地主***********"); System.out.println("***********【1】洗牌***********"); System.out.println("***********【2】发牌***********"); Scannersc=newScanner(System.in); Stringi=sc.nextLine(); if(!i.matches("^\\d{1}$")){ System.out.println("请输入正确的指令!"); start(); return; } switch(i){ case"1": shuffle(); break; case"2": sendCards(); break; default: System.out.println("指令不正确"); start(); break; } } publicstaticvoidmain(String[]args){ newPokerGame().start(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。