源代码:
package se;
import java.util.Arrays;
import java.util.Scanner;
public class Test4_7 {
/**
* @param args
*/
static String[][] cards={{"2","3","4","5","6","7","8","9","10","J","Q","K","A"},
{"2","3","4","5","6","7","8","9","10","J","Q","K","A"},
{"2","3","4","5","6","7","8","9","10","J","Q","K","A"},
{"2","3","4","5","6","7","8","9","10","J","Q","K","A"}};
static int[] bluk=new int[6];
static int[] color=new int[6];
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请玩家输入赌注!");//关于赌注可以扩展一下,计算输赢的总金额,递归一下就可以
double money=scan.nextDouble();
Test4_7 ts=new Test4_7();
ts.random();
boolean winner=ts.compare();
System.out.println();
String[] colour=new String[6];
for(int i=0;i<6;i++)
{
if(color[i]==0)
colour[i]="红桃";
if(color[i]==1)
colour[i]="方片";
if(color[i]==2)
colour[i]="黑桃";
if(color[i]==3)
colour[i]="梅花";
}
for(int i=0;i<3;i++)
{
System.out.print(colour[i]+" "+cards[color[i]][bluk[i]]);
for(int j=0;j<6-i;j++)
{
System.out.print(" ");
}
for(int m=0;m<(2*i+1);m++)
System.out.print("$");
for(int j=6;j>=0;j--)
{
System.out.print(" ");
}
System.out.println(colour[i+3]+" "+cards[color[i+3]][bluk[i+3]]);
}
System.out.println();
if(winner==false)
System.out.println("OH! NO!你输了!");
else
System.out.println("OH! YE!你赢了!");
}
public void random()//随机生成6张牌,前三张是电脑的,后三张是玩家的
{
String[][] cd=new String[4][13];
for(int i=0;i<4;i++)
for(int j=0;j<13;j++)
{
cd[i][j]="have";
}
int rand=0;
int random=0;
for(int i=0;i<6;i++)
{
rand=(int)(Math.random()*10);
while(rand>=4)
rand=(int)(Math.random()*10);
color[i]=rand;
}
for(int j=0;j<6;j++)
{
random=(int)(Math.random()*100);
while(random>12)
{
random=(int)(Math.random()*100);
}
while(cd[color[j]][random]==null)
{
random=(int)(Math.random()*100);
while(random>12)
{
random=(int)(Math.random()*100);
}
}
bluk[j]=random;
cd[color[j]][random]=null;
}
}
public boolean compare()//双方的牌的大小的比较
{
boolean flag=false;
int[] a=new int[3];//
int[] b=new int[3];//将玩家的牌大到小排序,以便后边比较用到
for(int j=0;j<3;j++)
{
a[j]=bluk[j];
b[j]=bluk[j+3];
}
Arrays.sort(a);
Arrays.sort(b);//将玩家的牌大到小排序,以便后边比较用到
for(int i=0;i<1;i++)
{
if((bluk[0]==bluk[1]&&bluk[1]==bluk[2])||(bluk[3]==bluk[4]&&bluk[4]==bluk[5]))
{
System.out.println("豹子");//主要是便于找错,同时可以明了牌的情况
if(bluk[0]==bluk[1]&&bluk[1]==bluk[2]&&bluk[3]==bluk[4]&&bluk[4]==bluk[5])
{
if(bluk[0]>bluk[3])
{
flag=false;
}
else
flag=true;
}
if((bluk[0]==bluk[1]&&bluk[1]==bluk[2])&&(bluk[3]!=bluk[4]||bluk[4]!=bluk[5]||bluk[4]!=bluk[5]))
{
flag=false;
}
else
flag=true;
break;
}
if((color[0]==color[1]&&color[1]==color[2])||(color[3]==color[4]&&color[4]==color[5]))
{
System.out.println("同花");
if(color[0]==color[1]&&color[1]==color[2]&&color[3]==color[4]&&color[4]==color[5])
{
if(((a[0]+1)%13==a[1]&&(a[1]+1)%13==a[2])&&((b[0]+1)%13==b[1]&&(b[1]+1)%13==b[2]))
{
if(a[2]>b[2])
flag=false;
else
flag=true;
}
if(((a[0]+1)%13==a[1]&&(a[1]+1)%13==a[2])&&((b[0]+1)%13!=b[1]||(b[1]+1)%13!=b[2]))
{
flag=false;
}
if(((a[0]+1)%13!=a[1]||(a[1]+1)%13!=a[2])&&((b[0]+1)%13==b[1]&&(b[1]+1)%13==b[2]))
flag=true;
else
{
if(a[2]>b[2])
flag=false;
else
flag=true;
}
}
if((color[0]==color[1]&&color[1]==color[2])&&(color[3]!=color[4]||color[4]!=color[5]))
{
flag=false;
}
else
flag=true;
break;
}
if(((a[0]+1)%13==a[1]&&(a[1]+1)%13==a[2])||((b[0]+1)%13==b[1]&&(b[1]+1)%13==b[2]))
{
System.out.println("顺子");
if(((a[0]+1)%13==a[1]&&(a[1]+1)%13==a[2])&&((b[0]+1)%13!=b[1]||(b[1]+1)%13!=b[2]))
{
flag=false;
}
if(((a[0]+1)%13!=a[1]||(a[1]+1)%13!=a[2])&&((b[0]+1)%13==b[1]&&(b[1]+1)%13==b[2]))
{
flag=true;
}
else
{
if(a[2]>=b[2])
flag=false;
else
flag=true;
}
break;
}
if(((a[0]==a[1])||a[0]==a[2]||a[1]==a[2])||((b[0]==b[1])||b[0]==b[2]||b[1]==b[2]))
{
System.out.println("对子");
if(((a[0]==a[1])||a[0]==a[2]||a[1]==a[2])&&((b[0]!=b[1])&&b[0]!=b[2]&&b[1]!=b[2]))
flag=false;
if(((a[0]!=a[1])&&a[0]!=a[2]&&a[1]!=a[2])&&((b[0]==b[1])||b[0]==b[2]||b[1]==b[2]))
flag=true;
if(((a[0]==a[1])||a[0]==a[2]||a[1]==a[2])&&((b[0]==b[1])||b[0]==b[2]||b[1]==b[2]))
{
if(a[1]>b[1])
flag=false;
if(a[1]==b[1])
{
if(a[0]==b[0]&&a[2]==b[2]){
flag=false;
break;
}
if(a[0]!=a[1]&&b[0]!=b[1])
{
if(a[0]>b[0]){
flag=false;
}
else{
flag=true;
}
break;
}
if(a[2]!=a[1]&&b[2]!=b[1])
{
if(a[2]>b[2]){
flag=false;
}
else{
flag=true;
}
break;
}
if(a[2]!=a[1]&&b[2]==b[1])
{
flag=true;
break;
}
else{
flag=false;
break;
}
}
if(a[1]<b[1])
flag=true;
}
break;
}
if((a[0]!=a[1]&&a[1]!=a[2]&&a[2]!=a[0])&&(color[0]!=color[1]||color[1]!=color[2]||color[0]!=color[2]))
{
System.out.println("单张");
if(a[2]>b[2])
{
flag=false;
break;
}
if(a[2]==b[2])
{
if(a[1]>b[1]){
flag=false;
break;
}
if(a[1]==b[1])
{
if(a[0]>b[0]){
flag=false;
}
if(a[0]==b[0]){
flag=false;
}
else{
flag=true;
}
}
else{
flag=true;
}
}
else{
flag=true;
}
}
break;
}
return flag;
}
}
本程序本人自己编写其中不足之处,请大牛们能提出好的意见,谢谢!