php做扑克牌,自己参考网上做的扑克牌联系,欢迎大神指导!

该博客详细介绍了如何使用Java编程实现一个简单的扑克牌游戏。首先创建了扑克牌类Poke,包含数字和花色属性,并构建了完整的扑克牌集合。接着创建了玩家类Player,包括ID、姓名和手牌。通过Collections.shuffle方法实现了洗牌功能。然后,创建了两个玩家并分配手牌。最后,实现了比较玩家手牌大小的逻辑,以决定游戏胜负。博客中包含了异常处理,确保用户输入有效的整数ID。
摘要由CSDN通过智能技术生成

public class Poke {

public String num;

public String kind;

public Poke(String num, String kind) {

this.num = num;

this.kind = kind;

}

public Poke(){

}

}public class Player {

public Integer id;

public String name;

public List hold;

public Player(Integer id, String name) {

this.id = id;

this.name = name;

this.hold =new ArrayList();

}

}public class MainTest {

//1.创建衣服扑克牌,包括黑红梅方,2-10,jqka

//2.创建两个玩家,id,姓名,手牌(扑克牌的集合)

//3.洗牌,打乱创建好的扑克牌的顺序(所以要用list集合)

//4.发牌,江西好的扑克牌集合,从第一个开始,发给两个人各一张,每人一共两张

//5.比大小.两个人取手中最大的牌进行比较,若大小一样,则比对花色,黑红梅方

//异常处理:创建用户id输入不为整书时,提示重新输入整数类型

private List pokeList=new ArrayList();

private List playersList=new ArrayList();

//创建扑克牌

public void PokeBuild(){

System.out.println("————创建扑克牌————");

String[] kind={"方块","梅花","红桃","黑桃"};

for (int i=2;i<11;i++){

for (int j=0;j<4;j++){

String k=String.valueOf(i);

Poke poke=new Poke(k,kind[j]);

pokeList.add(poke);

}}

//创建jqka

List pokelistjqka=new ArrayList();

for (int j=0;j<4;j++){

Poke poke1=new Poke("J",kind[j]);

pokelistjqka.add(poke1);

}

for (int j=0;j<4;j++){

Poke poke1=new Poke("Q",kind[j]);

pokelistjqka.add(poke1);

}

for (int j=0;j<4;j++){

Poke poke1=new Poke("K",kind[j]);

pokelistjqka.add(poke1);

}

for (int j=0;j<4;j++){

Poke poke1=new Poke("A",kind[j]);

pokelistjqka.add(poke1);

}

pokeList.addAll(pokelistjqka);

System.out.println("————扑克牌创建完毕————");

System.out.println("全部扑克牌如下");

for (Poke poke:pokeList.subList(0,13) ) {

System.out.print(poke.kind+poke.num+" ");

}

System.out.println();

for (Poke poke:pokeList.subList(13,26) ) {

System.out.print(poke.kind+poke.num+" ");

}

System.out.println();

for (Poke poke:pokeList.subList(26,39) ) {

System.out.print(poke.kind+poke.num+" ");

}

System.out.println();

for (Poke poke:pokeList.subList(39,52) ) {

System.out.print(poke.kind+poke.num+" ");

}

System.out.println(

);

}

//洗牌

public void PokeRandom(){

System.out.println("————开始洗牌————");

Collections.shuffle(pokeList);

System.out.println("————洗牌完成————");

}

//创建玩家

public void ManBuilde(){

System.out.println("开始创建玩家");

int i=1;

while(true){

while (i<3){

try{

Player player;

System.out.println("请输入第" + i + "个玩家id");

Scanner console = new Scanner(System.in);

Integer id = console.nextInt();

System.out.println("请输入第" + i + "个玩家名字");

String name=console.next();

player=new Player(id,name);

playersList.add(player);

System.out.println("成功创建玩家"+playersList.get(i-1).name);

i++;

}catch (Exception e){

System.out.println("请输入整数");

continue;

}

}

System.out.println("——创建玩家成功——");

break;

}}

//发牌给玩家

public void GivePoke(){

System.out.println("———开始发牌———");

Poke poke1=new Poke(pokeList.get(0).num,pokeList.get(0).kind);

Poke poke2=new Poke(pokeList.get(1).num,pokeList.get(1).kind);

Poke poke3=new Poke(pokeList.get(2).num,pokeList.get(2).kind);

Poke poke4=new Poke(pokeList.get(3).num,pokeList.get(3).kind);

playersList.get(0).hold.add(poke1);

playersList.get(1).hold.add(poke2);

playersList.get(0).hold.add(poke3);

playersList.get(1).hold.add(poke4);

System.out.println("——两个玩家的手牌——");

for (int i=0;i<2;i++){

//妈的,hold也是一个list,也要选择读其中的第几个!!!!操

System.out.println(playersList.get(i).name+"   "+playersList.get(i).hold.get(0).kind+playersList.get(i).hold.get(0).num

+playersList.get(i).hold.get(1).kind+playersList.get(i).hold.get(1).num);

}

}

//比大小,先玩家自己对比手牌中的大小,选大的和别人比

public void PokeCompare(){

System.out.println("————接下来比大小————");

//通过手中牌的索引位置比较大小

int oneMax,twoMax;

Poke poke1=playersList.get(0).hold.get(0);

Poke poke2=playersList.get(0).hold.get(1);

Poke poke3=playersList.get(1).hold.get(0);

Poke poke4=playersList.get(1).hold.get(1);

int poke1Index=playersList.indexOf(poke1);

int poke2Index=playersList.indexOf(poke2);

int poke3Index=playersList.indexOf(poke3);

int poke4Index=playersList.indexOf(poke4);

if (poke1Index>poke2Index){

oneMax=poke1Index;

System.out.println("玩家"+playersList.get(0).name+"  最大的手牌为"+poke1.kind+poke1.num);

}else {

oneMax=poke2Index;

System.out.println("玩家"+playersList.get(0).name+"  最大的手牌为"+poke2.kind+poke2.num);

}

if (poke3Index>poke4Index){

twoMax=poke3Index;

System.out.println("玩家"+playersList.get(0).name+"  最大的手牌为"+poke3.kind+poke3.num);

}else {

twoMax=poke4Index;

System.out.println("玩家"+playersList.get(1).name+"  最大的手牌为"+poke4.kind+poke4.num);

}

System.out.println("——比赛结果为——");

if (oneMax>twoMax){

System.out.println("玩家"+playersList.get(0).name+"胜出");

}

else {

System.out.println("玩家"+playersList.get(1).name+"胜出");

}

}

public static void main(String[] args) {

MainTest mt=new MainTest();

mt.PokeBuild();

mt.PokeRandom();

mt.ManBuilde();

mt.GivePoke();

mt.PokeCompare();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值