Senin, 04 April 2011

Tic Tac Toe

Bagi yang ingin tau tentang programming dari permainan tic tac toe bisa dilihat di bawah ini. Sebenarnya logika dalam membuatnya bermacam-macam, dan ini adalah salah satunya dari mahasiswa S1 Sistem Informasi UA.


Class Tic Tac Toe

public class TicTacToe {

Scanner input = new Scanner(System.in);
private String[][] data = new String[3][3];
private int row, column, turn = 1;
private boolean playOver = false;

TicTacToe(){
//mengisi default papan tic tac toe
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
data[i][j] = " ";
}
}

public void play(){
display(); // menampilkan papan tic tac toe
while(!playOver){ //selama permainan belum selesai
System.out.println("--Player "+turn+"'s turn--");
insert(); // mengisi papan tic tac toe
if(turn == 1) data[row][column] = "O"; // simbol O untuk player 1
else data[row][column] = "X"; // simbol X untuk player 2
System.out.println("\n");
display();

//mengecek baris dan kolom jika ada pemenang
if(checkRow()) System.out.println("Play over, the winner is Player "+turn);
else if(checkColumn()) System.out.println("Play over, the winner is Player "+turn);
else if(checkDiag1()) System.out.println("Play over, the winner is Player "+turn);
else if(checkDiag2()) System.out.println("Play over, the winner is Player "+turn);
else if(full()) {System.out.println("Play over, DRAW");
playOver = true;
}
// ganti giliran
else if(turn == 1) turn = 2;
else turn = 1;
}
}

// untuk mengisi papan tic tac toe
private void insert(){
do {
System.out.print("Insert row : ");
row = input.nextInt() - 1;
if(row<0 || row >2) System.out.println("Wrong input, try again");
} while (row<0 || row >2); // ulang jika baris yang dimasukkan tidak sesuai

do {
System.out.print("Insert column : ");
column = input.nextInt() - 1;
if(column<0 || column >2) System.out.println("Wrong input, try again");
} while (column<0 || column >2); // ulang jika kolom yang dimasukkan tidak sesuai

if(data[row][column].equals("O") || data[row][column].equals("X")) {
System.out.println("The place you chooose has been taken, choose another one");
insert(); // ulang jika baris dan kolom yang dipilih sudah diisi
}
}

// untuk mengecek jika papan full
private boolean full(){
String test = "test";
int i = 0, j = 0;

// memeriksa jika ada tempat yang masih kosong
while(test.equals("test") && i<3 && j<3){ if(data[i][j].equals(" ")) test = data[i][j]; // jika kotak yang diperiksa kosong
j++;
if(j==3){ // jika kolom sudah mencapai ujung, ganti baris
i++; j = 0;
}
}
if(test.equals("test")) return true; // return true jika papan penuh
else return false; // return false jika masih ada yang kosong
}

// memeriksa baris
private boolean checkRow(){
int temp = 0;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
if(turn==1){
if(data[i][j].equals("O")) temp++;
else temp = 0;
}
else{
if(data[i][j].equals("X")) temp++;
else temp = 0;
}
if(temp==3) playOver = true;
}
return playOver;
}

// memeriksa kolom
private boolean checkColumn(){
int temp = 0;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
if(turn==1)
if(data[j][i].equals("O")) temp++;
else temp = 0;
else
if(data[j][i].equals("X")) temp++;
else temp = 0;
if(temp==3) playOver = true;
}
return playOver;
}

//memeriksa diagonal 1
private boolean checkDiag1(){
if(turn==1){
if(data[0][0].equals("O") && data[1][1].equals("O") && data[2][2].equals("O"))
return(playOver = true);
else return(playOver = false);
}
else{
if(data[0][0].equals("X") &&; data[1][1].equals("X") && data[2][2].equals("X"))
return(playOver = true);
else return(playOver = false);
}
}

// memeriksa diagonal 2
private boolean checkDiag2(){
if(turn==1){
if(data[0][2].equals("O") && data[1][1].equals("O") && data[2][0].equals("O"))
return(playOver = true);
else return(playOver = false);
}
else{
if(data[0][2].equals("X") && data[1][1].equals("X") && data[2][0].equals("X"))
return(playOver = true);
else return(playOver = false);
}
}

// menampilkan papan tic tac toe
public void display(){
System.out.println("===================");
System.out.println("| "+data[0][0]+" | "+data[0][1]+" | "+data[0][2]+" |");
System.out.println("-------------------");
System.out.println("| "+data[1][0]+" | "+data[1][1]+" | "+data[1][2]+" |");
System.out.println("-------------------");
System.out.println("| "+data[2][0]+" | "+data[2][1]+" | "+data[2][2]+" |");
System.out.println("===================");
}
}



Class Main

public class Main {

public static void main(String[] args) {
TicTacToe t = new TicTacToe();
t.play();
}

}

d'Ark "12"

Minggu, 03 April 2011

UPDATE!

Cek laman tulisan ilmiah dan karya mahasiwa

Ada project aplikasi calculator yang OK lho,




By : M. Fahriyal Afif(SI 09)
Cekibrot!!

DESAIN WEB D3 SI 09

Ini nih beberapa kreasi desain web dari anak D3 SI 2009,

Punya karya yang oke? silahkan share, caranya gampanglah, hub Admin hario S1SI 2009

Desain Web D3 SI

ini juga

Desain Lagi


tambah lagi gan

More
no jebakan Betmen gan!