Selasa, 01 Juni 2010

Game Catur Menggunakan Bahasa Pemograman Greenfoot

- Chess Board
Ini merupakan listing program untuk bidk dari permainan catur

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Ini merupakan pendeskripsian untuk papan catur
*
*
*/
public class ChessBoard extends World
{

/**
* sebagai konstruktor untuk objek dari kelas ChessBoard.
*
*/
public boolean checkBlackTurn()
{
return isBlackTurn;
}
// Merupakan permbagian dari giliran antara bagian bidak catur hitam dengan bagian bidak catur putih
boolean isBlackTurn = false;
//Bagian pergerakan bidak hitam
public void changeBTurn()
{

if(isBlackTurn)
{
isBlackTurn = false;
setPaintOrder(Wpieces.class, pieces.class);
}
}
//jika bagian bidak hitam bergerak selanjutnya adalah bagian bidak putih
public void changeWTurn()
{
if(!isBlackTurn)
{
isBlackTurn = true;
setPaintOrder(pieces.class, Wpieces.class);
}
}
// Selanjtunya pergerakan akan bergantian dari bidak hitam lalu bidak putih atau bidak putih lalu bidak hitam

public ChessBoard()
{
// membuat dasar dari papan catur dan letak-letak dari masing-masing bidak catur
super(9, 9, 40);
Rook BR = new Rook();
addObject(BR, 1, 0);
BR = new Rook();
addObject(BR, 8, 0);
Knight BK = new Knight();
addObject(BK, 2, 0);
BK = new Knight();
addObject(BK, 7, 0);
Bishop BB = new Bishop();
addObject(BB, 3, 0);
BB = new Bishop();
addObject(BB, 6, 0);
Queen BQ = new Queen();
addObject(BQ, 4, 0);
King BKi = new King();
addObject(BKi, 5, 0);
Pawn BP = new Pawn();
addObject(BP, 1, 1);
BP = new Pawn();
addObject(BP, 2, 1);
BP = new Pawn();
addObject(BP, 3, 1);
BP = new Pawn();
addObject(BP, 4, 1);
BP = new Pawn();
addObject(BP, 5, 1);
BP = new Pawn();
addObject(BP, 6, 1);
BP = new Pawn();
addObject(BP, 7, 1);
BP = new Pawn();
addObject(BP, 8, 1);
Greenfoot.start();
}
}


- Black
Ini merupakan class untuk semua bidak catur hitam

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
* Write a description of class Black here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Black extends Actor
{
/**
* Act - do whatever the Black wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
// Add your action code here.
}
}


- White
Merupakan class untuk semua bidak catur putih

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
* Write a description of class White here.

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari knight hitam
* menggunakan gambar "KN.png" sebagai penanda bagi bidak knight hitam
*
*
*/


- Class Knight Hitam
public class Knight extends pieces
{public Knight()
{setImage("KN.png");
}
/**
* Merupakan method dari bidak knight hitam
* Menentukan knight untuk berjalan dan apa yang dapat bidak kuda lakukan
*
*/
boolean selected = false;
int b1=0;

// Merupakan class act
// Memuculkan gambaran dari gerakan pada bidak dimana saja bidak catur hitam dapat melakukan pergerakan
// Menggerakan bidak caturnya menggukan tombol pada mouse
// Disini yang memunculkan jalan yang dapat dapat dilakukan oleh knight, jika penempatanya tidak dilakukan pada tempat yang sudah ditentukan maka bidak
// Lainya knight tidak akan bergerak
public void act()
{
if(selected)
{

setImage("KNselect.png");
getWorld().setPaintOrder(Knight.class);
}
else
{
setImage("KN.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Pengaturan dari bidak kuda dapat melakukan pergerakan atau tidak
// jika merupakan bagian dari bidak catur hitam maka bidak knight dapat digerakan sesuai dengan letak mana saja bidak ini dapat digerakan
// jika terdapat bidak catur putih maka dapat dilakukan pemakanan pada bidak catur hitam, jika bidak putih berada diaderah yang dapat dilakukan pemakanan
public void moveWithMouse()
{


MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(pieces.class) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killWhite();
((ChessBoard)getWorld()).changeBTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killWhite
// Kelas dimana jika salah satu bidak putih dimakan maka salah satu bidak putih dan yang dimakan akan hilang
public void killWhite()
{
List kw = getWorld().getObjectsAt(getX(), getY(), Wpieces.class);
if(kw!=null && ((ChessBoard)getWorld()).isBlackTurn)
{
getWorld().removeObjects(kw);
}
}

}


- Class Pawn Hitam
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari pawn
* Menggunakan gambar dari "P.png" sebagai penanda dari pawn hitam
*
*
*/
public class Pawn extends pieces
{public Pawn()
{setImage("P.png");
}
/**
* Merupakan method dari pawn hitam
* Merupakan penentuan dari pawn akan bertindak dan tindakan apapun yang akan dilakukan
*
*/
boolean selected = false;
int b1=0;

// Merupakan class act
// jika dipilih maka akan dimunculkan jalur yang dapat dilalui oleh pawn hitam, dan jika tidak sesuai dengan jalur yang diberikan maka pawn tidak akan berpindah
// dan tetap pada tempat sebelum dipilih
// melakukan pemindahan catur menggunakan mouse
public void act()
{

if(selected)
{
setImage("Pselect.png");
getWorld().setPaintOrder(Pawn.class);
if(getX()==1)
{
setImage("Pselectstart.png");
}
}
else
{
setImage("P.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan menggunakan mouse, dengan memilih mana daerah akan diletaka pawn hitam dan sesuai dengan letak yang sudah ditentukan
// jika terdapat bidak catur putih yang sesuai dengan letak dapat dimakan, maka bidak putih dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(pieces.class) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killWhite();
((ChessBoard)getWorld()).changeBTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killWhite
// class untuk memakan bidak catur lawan (putih) jika letaknya dapat dijangkau oleh bidak catur hitam
// Setelah dimakan maka bidak catur lawan (putih) akan dihapus
public void killWhite()
{
List kw = getWorld().getObjectsAt(getX(), getY(), Wpieces.class);
if(kw!=null && ((ChessBoard)getWorld()).isBlackTurn)
{
getWorld().removeObjects(kw);
}
}

}

- Class Pieces Hitam
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Write a description of class pieces here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class pieces extends Black
{
/**
* Act - do whatever the pieces wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/

boolean selected = false;
int b1=0;
public void act()
{
if(selected)
{
setImage("WBselect.png");
getWorld().setPaintOrder(Bishop.class);
}
else
{
setImage("Bselect.png");
}
moveWithMouse();
}
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(pieces.class) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killWhite();
((ChessBoard)getWorld()).changeBTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected!=true)
{
selected = true;
}
b1=0;
}
public void killWhite()
{
Actor kw = getOneIntersectingObject(Wpieces.class);
if(kw!=null && ((ChessBoard)getWorld()).isBlackTurn)
{
getWorld().removeObject(kw);
}
}

}


- Class Queen Hitam
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan Class dari queen hitam
* Menggunakan gambar "Q.png" sebagai penanda queen hitam
*
*
*/
public class Queen extends pieces
{public Queen()
{setImage("Q.png");
}

/**
* Merupakan penetuan untuk queen hitam bertindak dan melakukan apa yang akan dilakukan oleh queen hitam
*
*/
boolean selected = false;
int b1=0;

// Merupakan class act
// Jika queen akan digerakan dengan memilih ganbar dari queen
// maka akan muncul letak-letak pergerakan dari queen
// Lainnya maka akan mengeset gambar quuen kembali sebagai "Q.png", dan masih diletak yang sama
// pemindahan bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("Qselect.png");
getWorld().setPaintOrder(Queen.class);
}
else
{
setImage("Q.png");
}

moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat diletakan queen hitam
// Jika terdapat bidak catur putih yang sesuai dengan letak dapat dimakan maka bidak putih dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(pieces.class) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killWhite();
((ChessBoard)getWorld()).changeBTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killWhite
// class untuk memakan bidak catur lawan (putih) jika letaknya dapat dijangkau oleh bidak catur hitam
// Setelah dimakan maka bidak catur lawan (putih) akan dihapus
public void killWhite()
{
List kw = getWorld().getObjectsAt(getX(), getY(), Wpieces.class);
if(kw!=null && ((ChessBoard)getWorld()).isBlackTurn)
{
getWorld().removeObjects(kw);
}
}

}


- Class Rook Hitam
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dri rook hitam
* Menggunakan gambar "R.png" sebagai penanda dari rook hitam
*
*
*/
public class Rook extends pieces
{public Rook()
{setImage("R.png");
}
/**
* Merupakan penentuan untuk rook hitam bertindak dan melakukan apa yang akan dilakukan oleh rook hitam
*
*/
boolean selected = false;
int b1=0;

// Merupakan class act
// Jika rook akan digerakan dengan mengklik rook
// maka akan muncul letak-letak dari pergerakan rook
// Lainnya maka akan mengeset kembali gambar rook, dan letaknya masih sama sebelum melakukan perpindahan
// Pergerakan dari bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("Rselect.png");
getWorld().setPaintOrder(Rook.class);
}
else
{
setImage("R.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat dietakan rook hitam
// Jika terdapat bidak catur putih yang sesuai dengan letak dapat dimakan, maka bidak putih dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(pieces.class) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killWhite();
((ChessBoard)getWorld()).changeBTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killWhite
// class untuk memakan bidak catur lawan (putih) jika letaknya dapat dijangkau oleh bidak catur hitam
// Setelah dimakan maka bidak catur lawan (putih) akan dihapus
public void killWhite()
{
List kw = getWorld().getObjectsAt(getX(), getY(), Wpieces.class);
if(kw!=null && ((ChessBoard)getWorld()).isBlackTurn)
{
getWorld().removeObjects(kw);
}
}

}


- Class Bishop Hitam
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari Bishop hitam
* Menggunakan Gambar "B.png" sebagai penanda bagi Bishop hitam
*
*
*/
public class Bishop extends pieces
{public Bishop()
{setImage("B.png");
}
/**
* Merupakan penentuan untuk rook hitam bertindak dan melakukan apa yang akan dilakukan oleh bishop hitam
*
*/
boolean selected = false;
int b1=0;

// Merupakan class act
// Jika bishop akan digerakan dengan mengklik bishop
// maka akan muncul letak-letak dari pergerakan bishop
// Lainnya maka akan mengeset kembali gambar bishop, dan letaknya masih sama sebelum melakukan perpindahan
// Pergerakan dari bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("Bselect.png");
getWorld().setPaintOrder(Bishop.class);
}
else
{
setImage("B.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat diletakan bishop hitam
// Jika terdapat bidak catur putih yang sesuai dengan letak dapat dimakan, maka bidak putih dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(pieces.class) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killWhite();
((ChessBoard)getWorld()).changeBTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killWhite
// class untuk memakan bidak catur lawan (putih) jika letaknya dapat dijangkau oleh bidak catur hitam
// Setelah dimakan maka bidak catur lawan (putih) akan dihapus
public void killWhite()
{
List kw = getWorld().getObjectsAt(getX(), getY(), Wpieces.class);
if(kw!=null && ((ChessBoard)getWorld()).isBlackTurn)
{
getWorld().removeObjects(kw);
}
}

}


- Class King Hitam
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari King hitam
* Menggunakan Gambar "Ki.png" sebagai penanda bagi king hitam
*
*
*/
public class King extends pieces
{public King()
{setImage("Ki.png");
}
/**
* Merupakan penentuan untuk king hitam bertindak dan melakukan apa yang akan dilakukan oleh king hitam
*
*/
boolean selected = false;
int b1=0;

// Merupakan class act
// Jika king akan digerakan dengan mengklik king
// maka akan muncul letak-letak dari pergerakan king
// Lainnya maka akan mengeset kembali gambar king, dan letaknya masih sama sebelum melakukan perpindahan
// Pergerakan dari bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("Kiselect.png");
getWorld().setPaintOrder(King.class);
}
else
{
setImage("Ki.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat diletakan king hitam
// Jika terdapat bidak catur putih yang sesuai dengan letak dapat dimakan, maka bidak putih dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(pieces.class) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killWhite();
((ChessBoard)getWorld()).changeBTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killWhite
// class untuk memakan bidak catur lawan (putih) jika letaknya dapat dijangkau oleh bidak catur hitam
// Setelah dimakan maka bidak catur lawan (putih) akan dihapus
public void killWhite()
{
List kw = getWorld().getObjectsAt(getX(), getY(), Wpieces.class);
if(kw!=null && ((ChessBoard)getWorld()).isBlackTurn)
{
getWorld().removeObjects(kw);
}
}

}


- Class Bishop Putih
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari Bishop putih
* Menggunakan Gambar "WB.png" sebagai penanda bagi Bishop putih
*
*
*/
public class WBishop extends Wpieces
{public WBishop()
{setImage("WB.png");
}
/**
* Merupakan penentuan untuk rook hitam bertindak dan melakukan apa yang akan dilakukan oleh bishop putih
*
*/
boolean selected = false;
int b1 = 0;
public boolean getSelected()
{
return selected;
}

// Merupakan class act
// Jika bishop akan digerakan dengan mengklik bishop
// maka akan muncul letak-letak dari pergerakan bishop
// Lainnya maka akan mengeset kembali gambar bishop, dan letaknya masih sama sebelum melakukan perpindahan
// Pergerakan dari bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("WBselect.png");
getWorld().setPaintOrder(WBishop.class);
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat diletakan bishop putih
// Jika terdapat bidak catur hitam yang sesuai dengan letak dapat dimakan, maka bidak hitam dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(Wpieces.class) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killBlack();
((ChessBoard)getWorld()).changeWTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected!=true)
{
selected = true;
}
b1=0;
}
// Merupakan class killBlack
// class untuk memakan bidak catur lawan (hitam) jika letaknya dapat dijangkau oleh bidak catur putih
// Setelah dimakan maka bidak catur lawan (hitam) akan dihapus
public void killBlack()
{
List kb = getWorld().getObjectsAt(getX(), getY(), pieces.class);
if(kb!=null && ((ChessBoard)getWorld()).isBlackTurn!=true)
{
getWorld().removeObjects(kb);
}
}
}


-Class King Putih
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari King putih
* Menggunakan Gambar "WKi.png" sebagai penanda bagi king putih
*
*
*/
public class WKing extends Wpieces
{public WKing()
{setImage("WKi.png");
}
/**
* Merupakan penentuan untuk king hitam bertindak dan melakukan apa yang akan dilakukan oleh king hitam
*
*/
boolean selected = false;
int b1 = 0;
public boolean getSelected()
{
return selected;
}

// Merupakan class act
// Jika king akan digerakan dengan mengklik king
// maka akan muncul letak-letak dari pergerakan king
// Lainnya maka akan mengeset kembali gambar king, dan letaknya masih sama sebelum melakukan perpindahan
// Pergerakan dari bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("WKiselect.png");
getWorld().setPaintOrder(WKing.class);
}
else
{
setImage("WKi.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat diletakan king putih
// Jika terdapat bidak catur putih yang sesuai dengan letak dapat dimakan, maka bidak hitam dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(Wpieces.class) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killBlack();
((ChessBoard)getWorld()).changeWTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killBlack
// class untuk memakan bidak catur lawan (hitam) jika letaknya dapat dijangkau oleh bidak catur putih
// Setelah dimakan maka bidak catur lawan (hitam) akan dihapus
public void killBlack()
{
List kb = getWorld().getObjectsAt(getX(), getY(), pieces.class);
if(kb!=null && ((ChessBoard)getWorld()).isBlackTurn!=true)
{
getWorld().removeObjects(kb);
}
}
}


-Class Knight Putih
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari knight putih
* menggunakan gambar "WKN.png" sebagai penanda bagi bidak knight putih
*
*
*/
public class WKnight extends Wpieces
{public WKnight()
{setImage("WKN.png");
}
/**
* Merupakan method dari bidak knight putih
* Menentukan knight untuk berjalan dan apa yang dapat bidak knight lakukan
*/
boolean selected = false;
int b1 = 0;
public boolean getSelected()
{
return selected;
}

// Merupakan class act
// Memuculkan gambaran dari gerakan pada bidak dimana saja bidak catur knight dapat melakukan pergerakan
// Menggerakan bidak caturnya menggukan tombol pada mouse
// Disini yang memunculkan jalan yang dapat dapat dilakukan oleh knight, jika penempatanya tidak dilakukan pada tempat yang sudah ditentukan maka bidak
// Lainya knight tidak akan bergerak
public void act()
{
if(selected)
{
setImage("WKNselect.png");
getWorld().setPaintOrder(WKnight.class);
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Pengaturan dari bidak kuda dapat melakukan pergerakan atau tidak
// jika merupakan bagian dari bidak catur putih maka bidak knight dapat digerakan sesuai dengan letak mana saja bidak ini dapat digerakan
// jika terdapat bidak catur hitam maka dapat dilakukan pemakanan pada bidak catur putih
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(Wpieces.class) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killBlack();
((ChessBoard)getWorld()).changeWTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killBlack
// Kelas dimana jika salah satu bidak hitam dimakan maka salah satu bidak hitam dan yang dimakan akan hilang
public void killBlack()
{
List kb = getWorld().getObjectsAt(getX(), getY(), pieces.class);
if(kb!=null && ((ChessBoard)getWorld()).isBlackTurn!=true)
{
getWorld().removeObjects(kb);
}
}
}


- Class Pawn Putih
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dari pawn
* Menggunakan gambar dari "WP.png" sebagai penanda dari pawn putih
*
*
*/
public class WPawn extends Wpieces
{public WPawn()
{setImage("WP.png");
}
/**
* Merupakan method dari pawn putih
* Merupakan penentuan dari pawn akan bertindak dan tindakan apapun yang akan dilakukan
*/
boolean selected = false;
int b1 = 0;
public boolean getSelected()
{
return selected;
}

// Merupakan class act
// jika dipilih maka akan dimunculkan jalur yang dapat dilalui oleh pawn putih, dan jika tidak sesuai dengan jalur yang diberikan maka pawn tidak akan berpindah
// dan tetap pada tempat sebelum dipilih
// melakukan pemindahan catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("WPselect.png");
getWorld().setPaintOrder(WPawn.class);
if(getX()==6)
{
setImage("WPselectstart.png");
}
}
else
{
setImage("WP.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan menggunakan mouse, dengan memilih mana daerah akan diletaka pawn putih dan sesuai dengan letak yang sudah ditentukan
// jika terdapat bidak catur hitam yang sesuai dengan letak dapat dimakan, maka bidak hitam dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(Wpieces.class) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killBlack();
((ChessBoard)getWorld()).changeWTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killBlack
// class untuk memakan bidak catur lawan (hitam) jika letaknya dapat dijangkau oleh bidak catur putih
// Setelah dimakan maka bidak catur lawan (hitam) akan dihapus
public void killBlack()
{
List kb = getWorld().getObjectsAt(getX(), getY(), pieces.class);
if(kb!=null && ((ChessBoard)getWorld()).isBlackTurn!=true)
{
getWorld().removeObjects(kb);
}
}
}


- Class Pieces Putih
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Write a description of class Wpieces here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Wpieces extends White
{
/**
* Act - do whatever the Wpieces wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
boolean selected = false;
int b1 = 0;
public boolean getSelected()
{
return selected;
}
public void act()
{
if(selected)
{
setImage("WBselect.png");
getWorld().setPaintOrder(WQueen.class);
}
moveWithMouse();
}
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(Wpieces.class) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killBlack();
((ChessBoard)getWorld()).changeWTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected!=true)
{
selected = true;
}
b1=0;
}
public void killBlack()
{
Actor kb = getOneIntersectingObject(pieces.class);
if(kb!=null && ((ChessBoard)getWorld()).isBlackTurn!=true)
{
getWorld().removeObject(kb);
}
}
}


- Class Queen Hitam

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan Class dari queen hitam
* Menggunakan gambar "WQ.png" sebagai penanda queen hitam
*
*
*/
public class WQueen extends Wpieces
{public WQueen()
{setImage("WQ.png");
}
/**
* Merupakan penetuan untuk queen putih bertindak dan melakukan apa yang akan dilakukan oleh queen putih
*
*/
boolean selected = false;
int b1 = 0;
public boolean getSelected()
{
return selected;
}

// Merupakan class act
// Jika queen akan digerakan dengan memilih ganbar dari queen
// maka akan muncul letak-letak pergerakan dari queen
// Lainnya maka akan mengeset gambar quuen kembali sebagai "WQ.png", dan masih diletak yang sama
// pemindahan bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("WQselect.png");
getWorld().setPaintOrder(WQueen.class);
}
else
{
setImage("WQ.png");
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat diletakan queen putih
// Jika terdapat bidak catur putih yang sesuai dengan letak dapat dimakan maka bidak hitam dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(Wpieces.class) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killBlack();
((ChessBoard)getWorld()).changeWTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killBlack
// class untuk memakan bidak catur lawan (hitam) jika letaknya dapat dijangkau oleh bidak catur putih
// Setelah dimakan maka bidak catur lawan (hitam) akan dihapus
public void killBlack()
{
List kb = getWorld().getObjectsAt(getX(), getY(), pieces.class);
if(kb!=null && ((ChessBoard)getWorld()).isBlackTurn!=true)
{
getWorld().removeObjects(kb);
}
}
}


- Class Rook Putih
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Merupakan class dri rook putih
* Menggunakan gambar "WR.png" sebagai penanda dari rook putih
*
*
*/
public class WRook extends Wpieces
{
public WRook()
{setImage("WR.png");
}
/**
* Merupakan penentuan untuk rook hitam bertindak dan melakukan apa yang akan dilakukan oleh rook putih
*
*/
boolean selected = false;
int b1 = 0;
public boolean getSelected()
{
return selected;
}

// Merupakan class act
// Jika rook akan digerakan dengan mengklik rook
// maka akan muncul letak-letak dari pergerakan rook
// Lainnya maka akan mengeset kembali gambar rook, dan letaknya masih sama sebelum melakukan perpindahan
// Pergerakan dari bidak catur menggunakan mouse
public void act()
{
if(selected)
{
setImage("WRselect.png");
getWorld().setPaintOrder(WRook.class);
}
moveWithMouse();
}

// Merupakan class moveWithMouse
// Merupakan class pergerakan bidak menggunakan mouse, dengan memilih mana tempat yang dapat dietakan rook putih
// Jika terdapat bidak catur hitam yang sesuai dengan letak dapat dimakan, maka bidak hitam dapat dimakan
public void moveWithMouse()
{
MouseInfo mouse = Greenfoot.getMouseInfo();
if(mouse != null)
{
b1 = Greenfoot.getMouseInfo().getButton();
}
if (Greenfoot.mouseClicked(Wpieces.class) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
selected = false;
}

else if(b1==1 && ((ChessBoard)getWorld()).isBlackTurn!=true && selected)
{
setLocation(mouse.getX(), mouse.getY());
selected = false;
killBlack();
((ChessBoard)getWorld()).changeWTurn();
}
else if(Greenfoot.mouseClicked(this) && ((ChessBoard)getWorld()).isBlackTurn!=true && selected!=true)
{
selected = true;
}
b1=0;
}

// Merupakan class killBlack
// class untuk memakan bidak catur lawan (hitam) jika letaknya dapat dijangkau oleh bidak catur putih
// Setelah dimakan maka bidak catur lawan (hitam) akan dihapus
public void killBlack()
{
List kb = getWorld().getObjectsAt(getX(), getY(), pieces.class);
if(kb!=null && ((ChessBoard)getWorld()).isBlackTurn!=true)
{
getWorld().removeObjects(kb);
}
}
}