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;
}
publicListgetCards(){
returncards;
}
publicvoidsetCards(Listcards){
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<>();//所有牌集合
staticListplayers=newArrayList<>();//玩家集合
staticintposition;//初始化当前发牌的位置
staticString[]flowers={"红桃","方片","梅花","黑桃"};
staticString[]names={"3","4","5","6","7","8","9","10","J","Q","K","A","2","小王","大王"};
/**
*初始化所有牌面和玩家
*/
static{
inti=0;
//遍历所有的牌面值(除大小王:大小王无花色)
for(;ilast=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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。