Wednesday, June 12, 2013

game domino menggunakan java

berikut coding game domino:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Domino;
import java.util.*;
import javax.swing.JOptionPane;
class Variables {
   static Dice dice=new Dice (49);
   static tiles tile=new tiles();
   static String [] character=new String[3];
   static int charcount=0;
   static int player1[][]=new int[2][49];
   static int player2[][]=new int[2][49];
   static int dicevalue;
   static boolean check;
   static boolean checkroll;
   static boolean checkroll1;
   static boolean checkgame=true;
   static int highhead1=0;
   static int highhead2=0;
   static int hightail1=0;
   static int hightail2=0;
   static int interval[][]=new int[2][98];
   static int x2=49;
   static int y2=49;
   static int xx2=49;
   static int yy2=49;
   static int toplace;
   static int counter1;
   static int counterplayer1;
   static int counterplayer2;
   static int temp;
}
 class Dice {
    Random r =new Random();
    int sides;
 //constructor
    public Dice(int s){
       sides = s;
    }
 //roll method depending on sides up there
    public int roll(){
    return r.nextInt(sides);
    }
}
 class tiles {
  static int headcount=0;
  static int tailcount=0;
  static int a=0;
  static int b=0;
  int handler[][]=new int [2][49];
    public void dominotiles(){
        for(int x=0;x<49;x++){
            for(int y=0; y<2; y++){
                if(y==0){
                    if(headcount==7){
                        headcount=0;
                        a=a+1;
                    }
                    if(headcount<=6){
                    handler[y][x]=a;
                    headcount=headcount+1;
                    }
                }
                else {
                    if(tailcount==7){
                        tailcount=0;
                    }
                    if(tailcount<=6){
                     handler[y][x]=tailcount;
                    tailcount=tailcount+1;
                    }
                }
            }
        }
    }
}
public class  Gapleh extends Variables {
    public static void main(String[]args){
      tile.dominotiles();
      for(int x=0;x<49;x++){
        for(int y=0; y<2; y++){
                    player1[y][x]=7;
                    player2[y][x]=7;
        }
      }
     for(int x=0;x<98;x++)
        for(int y=0;y<2;y++){
                interval[y][x]=7;
        }
      newCharacter();
      newCharacter();
      JOptionPane.showMessageDialog(null,character[0]+" Di Kocok Secara Acak");
      for(int x=0;x<7;x++){
          check=true;
        while(check){
           dicevalue=dice.roll();
            if(tile. handler[0][dicevalue]<7 && tile. handler[1][dicevalue]<7){
                player1[0][dicevalue]=tile. handler[0][dicevalue];
                player1[1][dicevalue]=tile. handler[1][dicevalue];
                tile. handler[0][dicevalue]=7;
                tile. handler[1][dicevalue]=7;
                if(highhead1<player1[0][dicevalue]){
                    highhead1=player1[0][dicevalue];
                    hightail1=player1[1][dicevalue];
                }
                check=false;
            }
        }
      }
            System.out.println(character[0]+"'s tiles");
            for(int x=0;x<49;x++){
                    if(player1[0][x]<7&&player1[1][x]<7){
                        System.out.print("("+player1[0][x]+","+player1[1][x]+")");
                        System.out.println();
                    }
            }
      JOptionPane.showMessageDialog(null,character[1]+" Di Kocok Secara Acak");
      for(int x=0;x<7;x++){
          check=true;
        while(check){
           dicevalue=dice.roll();
            if(tile. handler[0][dicevalue]<7 && tile. handler[1][dicevalue]<7){
                player2[0][dicevalue]=tile. handler[0][dicevalue];
                player2[1][dicevalue]=tile. handler[1][dicevalue];
                tile. handler[0][dicevalue]=7;
                tile. handler[1][dicevalue]=7;
                if(highhead2<player2[0][dicevalue]){
                    highhead2=player2[0][dicevalue];
                    hightail2=player2[1][dicevalue];
                }
                check=false;
            }
        }
      }
            System.out.println(character[1]+"'s tiles");
            for(int x=0;x<49;x++){
                    if(player2[0][x]<7&&player2[1][x]<7){
                        System.out.print(player2[0][x]+"\t"+player2[1][x]);
                        System.out.println();
                    }
            }
      if(highhead1>highhead2){
          JOptionPane.showMessageDialog(null,character[0]+" Mangga Tipayun");
          game();
      }
      else if(highhead1<highhead2){
          JOptionPane.showMessageDialog(null,character[1]+" Sok Duluan Mainkan");
          character[2]=character[0];
          character[0]=character[1];
          character[1]=character[2];
          for(int x=0;x<49;x++){
              temp=player1[0][x];
              player1[0][x]=player2[0][x];
              player2[0][x]=temp;
              temp=player1[1][x];
              player1[1][x]=player2[1][x];
              player2[1][x]=temp;
          }
          game();
      }
      else{
          if(hightail1>hightail2){
              JOptionPane.showMessageDialog(null,character[0]+" Mangga Tipayun");
              game();
          }
          else{
              JOptionPane.showMessageDialog(null,character[1]+" Sok Duluan Mainkan");
                character[2]=character[0];
                character[0]=character[1];
                character[1]=character[2];
                for(int x=0;x<49;x++){
                    temp=player1[0][x];
                    player1[0][x]=player2[0][x];
                    player2[0][x]=temp;
                    temp=player1[1][x];
                    player1[1][x]=player2[1][x];
                    player2[1][x]=temp;
                }
              game();
          }
      }
            
      
    }
    public static void newCharacter(){
        if (charcount<2){
            character[charcount]=JOptionPane.showInputDialog("Isi Nama:");
            charcount+=1;
        }
    }
    public static void printgamecycle(){
        System.out.println("Aksi Permainan");
        for(int x=0;x<98;x++){
                if(interval[0][x]<7&&interval[0][x]<7)
                System.out.println(interval[0][x]+"\t"+interval[1][x]);
        }
    }
    
    public static void game(){
        check=true;
        while(check){
            while(check){
                try{
                highhead1=Integer.parseInt(JOptionPane.showInputDialog(character[0]+"'s turn\nEnter Masukan angka kartu domino anda Mas :"));
                hightail1=Integer.parseInt(JOptionPane.showInputDialog(character[0]+"'s turn\nEnter Masukan angka kartu domino anda Mas:"));
                check=false;
                }
                catch(NumberFormatException e){
                JOptionPane.showMessageDialog(null,"ga ada Di kartu punya Mu Mas","ERROR",JOptionPane.ERROR_MESSAGE);
                }
            }
            
            if(highhead1<=6&&highhead1>=0&&hightail1<=6&&hightail1>=0){
                   for(int x=0;x<49;x++){
                      if(player1[0][x]==highhead1&&player1[1][x]==hightail1){
                         interval[0][x2]=player1[0][x];
                         interval[1][y2]=player1[1][x];
                         player1[0][x]=7;
                         player1[1][x]=7;
                      }
                  }
                check=false;
            printgamecycle();
            }
            
      }
        
        
while(checkgame){
    counter1=0;
    for(int x=0;x<49;x++){
        if(tile. handler[0][x]==7&&tile. handler[1][x]==7)
            counter1+=1;
    }
    if(counter1==49){
        for(int x=0;x<49;x++){
            if(player1[0][x]<7&&player1[1][x]<7)
                counterplayer1+=1;
            if(player2[0][x]<7&&player2[1][x]<7)
                counterplayer2+=1;
        }
        if(counterplayer1<counterplayer2){
            JOptionPane.showMessageDialog(null,character[0]+"Wins");
            checkgame=false;
            check=false;
            checkroll=false;
            checkroll1=false;
        }
        else if(counterplayer1>counterplayer2){
            JOptionPane.showMessageDialog(null,character[1]+"Wins");
            checkgame=false;
            check=false;
            checkroll=false;
            checkroll1=false;
        }
        else if(counterplayer1==counterplayer2){
            JOptionPane.showMessageDialog(null,"DRAW!!!");
            checkgame=false;
            check=false;
            checkroll=false;
            checkroll1=false;
        }
    }
        while(true){
            check=false;
            checkroll1=true;
            while(checkroll1){
                checkroll=true;
                for(int x=0;x<49;x++){
                    if(highhead1==player2[0][x]||highhead1==player2[1][x]||hightail1==player2[0][x]||hightail1==player2[1][x]){
                        check=true;
                        checkroll=false;
                        checkroll1=false;
                    }
                    else if(counter1==49){
                        check=false;
                        checkroll=false;
                        checkroll1=false;
                    }
                    
                } 
                while(checkroll){
                    dicevalue=dice.roll();
                        if(tile. handler[0][dicevalue]<7 && tile. handler[1][dicevalue]<7){
                            JOptionPane.showMessageDialog(null,character[1]+" chose to pass, required to get new domino from boneyard");
                            player2[0][dicevalue]=tile. handler[0][dicevalue];
                            player2[1][dicevalue]=tile. handler[1][dicevalue];
                            tile. handler[0][dicevalue]=7;
                            tile. handler[1][dicevalue]=7;
                            highhead2=highhead1;
                            hightail2=hightail1;
                            check=false;
                            checkroll=false;
                            checkroll1=false;
                        }
                        counter1=0;
                        for(int x=0;x<49;x++){
                        if(tile. handler[0][x]==7&&tile. handler[1][x]==7)
                        counter1+=1;
                        }
                        if(counter1==49){
                            check=false;
                            checkroll=false;
                            checkroll1=false;
                        }
                 }    
            }
            System.out.println(character[1]+"'s tiles");
            for(int x=0;x<49;x++){
                if(player2[0][x]<7&&player2[1][x]<7)
                System.out.println("("+player2[0][x]+","+player2[1][x]+")");
            }
            while(check){
                while(check){
                try{
                highhead2=Integer.parseInt(JOptionPane.showInputDialog(character[1]+"'s turn\nEnter a head tile number to use:"));
                hightail2=Integer.parseInt(JOptionPane.showInputDialog(character[1]+"'s turn\nEnter a tail tile number to use:"));
                    while(check){
                    toplace=Integer.parseInt(JOptionPane.showInputDialog("Where to place the tiles:\n[0]head portion\n[1]tail portion"));
                    if(toplace==0||toplace==1){
                        check=false;
                    }
                    else
                    JOptionPane.showMessageDialog(null,"WRONG INPUT","Warning",JOptionPane.WARNING_MESSAGE);
                    }
                check=false;
                }
                catch(NumberFormatException e){
                JOptionPane.showMessageDialog(null,"WRONG INPUT","ERROR",JOptionPane.ERROR_MESSAGE);
                }
                }
                check=true;
            if(toplace==0){ 
                if(highhead2==highhead1){
                   for(int x=0;x<49;x++){
                      if(player2[0][x]==highhead2&&player2[1][x]==hightail2){
                         x2-=1;
                         y2-=1;
                         interval[0][x2]=player2[1][x];
                         interval[1][y2]=player2[0][x];
                         highhead2=player2[1][x];
                         hightail2=hightail1;
                         player2[0][x]=7;
                         player2[1][x]=7;
                         check=false;
                         
                      }
                  }
                }
                else if(hightail2==highhead1){
                     for(int x=0;x<49;x++){
                      if(player2[0][x]==highhead2&&player2[1][x]==hightail2){
                         x2-=1;
                         y2-=1;
                         interval[0][x2]=player2[0][x];
                         interval[1][y2]=player2[1][x];
                         hightail2=hightail1;
                         player2[0][x]=7;
                         player2[1][x]=7;
                         check=false;
                      }
                  }
                }
            }
            
            else if(toplace==1){
                if(highhead2==hightail1){
                   for(int x=0;x<49;x++){
                      if(player2[0][x]==highhead2&&player2[1][x]==hightail2){
                         xx2+=1;
                         yy2+=1;
                         interval[0][xx2]=player2[0][x];
                         interval[1][yy2]=player2[1][x];
                         highhead2=highhead1;
                         player2[0][x]=7;
                         player2[1][x]=7;
                         check=false;
                      }
                  }
                }
                else if(hightail2==hightail1){
                    for(int x=0;x<49;x++){
                      if(player2[0][x]==highhead2&&player2[1][x]==hightail2){
                         xx2+=1;
                         yy2+=1;
                         interval[0][xx2]=player2[1][x];
                        interval[1][yy2]=player2[0][x];
                         highhead2=highhead1;
                         hightail2=player2[0][x];
                         player2[0][x]=7;
                         player2[1][x]=7;
                         check=false;
                      }
                  }
                }
            }
            }
            printgamecycle();
                counterplayer2=0;
                for(int x=0;x<49;x++){
                if(player2[0][x]<7&&player2[1][x]<7)
                counterplayer2+=1;
                }
                if(counterplayer2==0){
                JOptionPane.showMessageDialog(null,character[1]+" Wins!!!");
                checkgame=false;
                check=false;
                checkroll=false;
                checkroll1=false;
                }
                else{
                check=false;
                checkroll1=true;
                }
        break;
    }
                
         
        while(true){ 
            while(checkroll1){
                checkroll=true;
                for(int x=0;x<49;x++){
                    if(highhead2==player1[0][x]||highhead2==player1[1][x]||hightail2==player1[0][x]||hightail2==player1[1][x]){
                        check=true;
                        checkroll=false;
                        checkroll1=false;
                    }
                    else if(counter1==49){
                        check=false;
                        checkroll=false;
                        checkroll1=false;
                    }
                }
                while(checkroll){
                    dicevalue=dice.roll();
                        if(tile. handler[0][dicevalue]<7 && tile. handler[1][dicevalue]<7){
                            JOptionPane.showMessageDialog(null,character[0]+" chose to pass, required to get new domino from boneyard");
                            player1[0][dicevalue]=tile. handler[0][dicevalue];
                            player1[1][dicevalue]=tile. handler[1][dicevalue];
                            tile. handler[0][dicevalue]=7;
                            tile. handler[1][dicevalue]=7;
                            highhead1=highhead2;
                            hightail1=hightail2;
                            check=false;
                            checkroll=false;
                            checkroll1=false;
                        }
                        counter1=0;
                        for(int x=0;x<49;x++){
                        if(tile. handler[0][x]==7&&tile. handler[1][x]==7)
                        counter1+=1;
                        }
                        if(counter1==49){
                            check=false;
                            checkroll=false;
                            checkroll1=false;
                        }
                }
            }
            System.out.println(character[0]+"'s tiles");
            for(int x=0;x<49;x++){
                if(player1[0][x]<7&&player1[1][x]<7)
                System.out.println(player1[0][x]+"\t"+player1[1][x]);
            }
            while(check){
                while(check){
                try{
                highhead1=Integer.parseInt(JOptionPane.showInputDialog(character[0]+"'s turn\nEnter a your head tile number to use:"));
                hightail1=Integer.parseInt(JOptionPane.showInputDialog(character[0]+"'s turn\nEnter a your tail tile number to use:"));
                while(check){
                    toplace=Integer.parseInt(JOptionPane.showInputDialog("Where to place the tiles:\n[0]head portion\n[1]tail portion"));
                    if(toplace==0||toplace==1){
                    check=false;
                    }
                    else
                    JOptionPane.showMessageDialog(null,"WRONG INPUT","Warning",JOptionPane.WARNING_MESSAGE);
                    }
                check=false;
                }
                catch(NumberFormatException e){
                JOptionPane.showMessageDialog(null,"WRONG INPUT","ERROR",JOptionPane.ERROR_MESSAGE);
                }
                }
                check=true;
            if(toplace==0){ 
                if(highhead1==highhead2){
                   for(int x=0;x<49;x++){
                      if(player1[0][x]==highhead1&&player1[1][x]==hightail1){
                         x2-=1;
                         y2-=1;
                         interval[0][x2]=player1[1][x];
                         interval[1][y2]=player1[0][x];
                         highhead1=player1[1][x];
                         hightail1=hightail2;
                         player1[0][x]=7;
                         player1[1][x]=7;
                         check=false;
                         
                      }
                  }
                }
                else if(hightail1==highhead2){
                     for(int x=0;x<49;x++){
                      if(player1[0][x]==highhead1&&player1[1][x]==hightail1){
                         x2-=1;
                         y2-=1;
                         interval[0][x2]=player1[0][x];
                         interval[1][y2]=player1[1][x];
                         hightail1=hightail2;
                         player1[0][x]=7;
                         player1[1][x]=7;
                         check=false;
                      }
                  }
                }
            }
            
            else if(toplace==1){
                if(highhead1==hightail2){
                   for(int x=0;x<49;x++){
                      if(player1[0][x]==highhead1&&player1[1][x]==hightail1){
                        xx2+=1;
                         yy2+=1;
                         interval[0][xx2]=player1[0][x];
                         interval[1][yy2]=player1[1][x];
                         highhead1=highhead2;
                         player1[0][x]=7;
                         player1[1][x]=7;
                         check=false;
                      }
                  }
                }
                else if(hightail1==hightail2){
                    for(int x=0;x<49;x++){
                      if(player1[0][x]==highhead1&&player1[1][x]==hightail1){
                         xx2+=1;
                         yy2+=1;
                         interval[0][xx2]=player1[1][x];
                         interval[1][yy2]=player1[0][x];
                         highhead1=highhead2;
                         hightail1=player1[0][x];
                         player1[0][x]=7;
                         player1[1][x]=7;
                         check=false;
                      }
                  }
                }
            }
            }
            printgamecycle();
                counterplayer1=0;
                for(int x=0;x<49;x++){
                if(player1[0][x]<7&&player1[1][x]<7)
                counterplayer1+=1;
                }
                if(counterplayer1==0){
                JOptionPane.showMessageDialog(null,character[0]+" LOE MENANG!!!");
                checkgame=false;
                check=false;
                checkroll=false;
                checkroll1=false;
                }
        break;
    }
}
}
}

dan ini adalah screenshot hasil dari coding tsb stelah dieksekusi

No comments:

Post a Comment