/*
 * 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