天天看點

詐金花遊戲代碼,望給予指點

源代碼:

package se;

import java.util.Arrays;

import java.util.Scanner;

public class Test4_7 {

 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;

 }

}

本程式本人自己編寫其中不足之處,請大牛們能提出好的意見,謝謝!