梭哈游戏的完善(通过数字比较大小确定赢家)7-4

package group7;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

//梭哈游戏的完善
//比较最后获胜者-A>K>Q>J>10>9>8;黑>红>梅>方;

public class text4 {
public static void main(String[] args) {
String[] s1={“梅花”,“方块”,“黑桃”,“红桃”};
String[] s2={“A”,“8”,“9”,“0”,“J”,“Q”,“K”};
ArrayList box=new ArrayList();
for(int i=0;i<s1.length;i++){
for(int j=0;j<s2.length;j++)
box.add(s1[i]+s2[j]);
}
Collections.shuffle(box);
ArrayList 玩家1=new ArrayList();
ArrayList 玩家2=new ArrayList();
ArrayList 玩家3=new ArrayList();
ArrayList 玩家4=new ArrayList();
setbox(box, 玩家1, 玩家2, 玩家3, 玩家4);
System.out.println(“获胜的玩家是:玩家”+judgeMax(玩家1, 玩家2, 玩家3, 玩家4));
}
public static void setbox(ArrayList box,ArrayList 玩家1,ArrayList 玩家2,ArrayList 玩家3,ArrayList 玩家4){
int flag1=0,flag2=0,flag3=0,flag4=0;
int has=0;
int i=0;
System.out.println(“请输入你想要从玩家几开始发牌”);
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
switch(k)
{
case 1:
玩家1.add(box.get(i));i++;
玩家2.add(box.get(i));i++;
玩家3.add(box.get(i));i++;
玩家4.add(box.get(i));i++;
break;
case 2:
玩家2.add(box.get(i));i++;
玩家3.add(box.get(i));i++;
玩家4.add(box.get(i));i++;
玩家1.add(box.get(i));i++;
break;
case 3:
玩家3.add(box.get(i));i++;
玩家4.add(box.get(i));i++;
玩家1.add(box.get(i));i++;
玩家2.add(box.get(i));i++;
break;
case 4:
玩家4.add(box.get(i));i++;
玩家1.add(box.get(i));i++;
玩家2.add(box.get(i));i++;
玩家3.add(box.get(i));i++;
break;
}
has+=1;
while(has<4)
{
System.out.println(“玩家1:”+玩家1);
System.out.println(“玩家2:”+玩家2);
System.out.println(“玩家3:”+玩家3);
System.out.println(“玩家4:”+玩家4);
System.out.println(“请问玩家1下一局是否要抽取牌(输入0即抽取,1即不抽取)”);
flag1=sc.nextInt();
System.out.println(“请问玩家2下一局是否要抽取牌(输入0即抽取,1即不抽取)”);
flag2=sc.nextInt();
System.out.println(“请问玩家3下一局是否要抽取牌(输入0即抽取,1即不抽取)”);
flag3=sc.nextInt();
System.out.println(“请问玩家4下一局是否要抽取牌(输入0即抽取,1即不抽取)”);
flag4=sc.nextInt();
if(flag10)
{
玩家1.add(box.get(i));i++;
}
if(flag2
0)
{
玩家2.add(box.get(i));i++;
}
if(flag30)
{
玩家3.add(box.get(i));i++;
}
if(flag4
0)
{
玩家4.add(box.get(i));i++;
}
has+=1;
}
System.out.println(“最终玩家的牌为:”);
System.out.println(“玩家1:”+玩家1);
System.out.println(“玩家2:”+玩家2);
System.out.println(“玩家3:”+玩家3);
System.out.println(“玩家4:”+玩家4);
}
public static int judgeMax(ArrayList 玩家1,ArrayList 玩家2,ArrayList 玩家3,ArrayList 玩家4){
int count1=0,count2=0,count3=0,count4=0;
for(int i=0;i<玩家1.size();i++)
{
String s=玩家1.get(i);
char a=s.charAt(2);
count1=judgeNumber(a, count1);
}
for(int i=0;i<玩家2.size();i++)
{
String s=玩家2.get(i);
char a=s.charAt(2);
count2=judgeNumber(a, count2);
}
for(int i=0;i<玩家3.size();i++)
{
String s=玩家3.get(i);
char a=s.charAt(2);
count3=judgeNumber(a, count3);
}
for(int i=0;i<玩家4.size();i++)
{
String s=玩家4.get(i);
char a=s.charAt(2);
count4=judgeNumber(a, count4);
}
//比较得出牌最大的玩家
int max=max(max(count1, count2), max(count3, count4));
if(maxcount1)
return 1;
else if(max
count2)
return 2;
else if(maxcount3)
return 3;
else if(max
count4)
return 4;
return 0;
}
public static int max(int count1,int count2){
if(count1>count2)
return count1;
else return count2;
}
public static int judgeNumber(char a,int count){
switch(a)
{
case ‘8’:count+=8;break;
case ‘9’:count+=9;break;
case ‘0’:count+=10;break;
case ‘J’:count+=11;break;
case ‘Q’:count+=12;break;
case ‘K’:count+=13;break;
case ‘A’:count+=14;break;
}
return count;
}
}
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一.扑克牌游戏 一副扑克牌去除大小王,剩余52张,A--K,红心,方块,黑桃,梅花四种花色。然后把这一副牌发给两个人,每人分得五张,比较这两人手中牌的大小。 大小的判定规则暂定如下: 牌型比较:同花顺>铁支>葫芦>同花>顺子>三条>二对>对子>散牌。 数字比较:A>K>Q>J>10>9>8 花式比较:黑桃>红桃>草花>方片 牌型说明: 同花顺:拥有五张连续性同花色的顺子。以A为首的同花顺最大。 铁支:四张相同数字的牌,外加一单张。比数字大小,「A」铁支最大 葫芦:由「三条」加一个「对子」所组成的牌,若别家也有此牌型,则比三条数字大小 同花:不构成顺子的五张同花色的牌。先比数字最大的单张,如相同再比第二支、依此类推 顺子:五张连续数字的牌组。 以A为首的顺子最大,如果大家都是顺子,比最大的一张牌,如果大小还一样就比这张牌的花式 三条:牌型由三张相同的牌组成,以A为首的三条最大 二对:牌型中五张牌由两组两张同数字的牌所组成。若遇相同则先比这副牌中最大的一对,如又相同再比第二对,如果还是一样,比大对子中的最大花式 对子:牌型由两张相同的牌加上三张单张所组成。如果大家都是对子,比对子的大小,如果对子也一样,比这个对子中的最大花色 散牌:单一型态的五张散牌所组成,不成对(二对),不成三条,不成顺(同花顺),不成同花,不成葫芦,不成铁支。先比最大一张牌的大小,如果大小一样,比这张牌的花色。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值