Saya mengambil aplikasi sederhana java game karena menurut saya lebih mudah dimengerti:
setiap anak/pasukan/objek dari bagian ini memiliki perintah atau coding sendiri-sendiri, contoh coding pada Queen:
public class objQueen extends objChessPieces
{
public void objQueen ()
{
}
public boolean legalMove (int startRow, int startColumn, int desRow, int desColumn, int[][] playerMatrix)
{
boolean axis = true;
if (startRow == desRow ^ startColumn == desColumn) // XOR If ONE kondisi ini sesuai (jika keduanya benar atau palsu maka palsu dikembalikan)
{
axis = true; //Bergerak lurus sepanjang sumbu
}
else if (startRow != desRow && startColumn != desColumn)
{
axis = false; //Bergerak diagonal
}
else
{
strErrorMsg = "Queen can move in a straight line in any direction";
return false;
}
return axisMove(startRow, startColumn, desRow, desColumn, playerMatrix, axis);
}
}
sintax diatas misa diterapkan juga pada King, Horse dan pion-pion catur lainnya, dibawah ini adalah sintax untuk bidak caturnya :
//Papan catur standar yang dapat digunakan untuk catur, draft dll
import java.awt.*;
import java.util.Vector;
public class objChessBoard extends Canvas
{
protected objPaintInstruction currentInstruction = null;
protected Vector vecPaintInstructions = new Vector();
public void chessBoard ()
{
}
public void update (Graphics g)
{
paint(g);
}
public void paint (Graphics g)
{
if (vecPaintInstructions.size() == 0)
{
g.setColor(new Color(75,141,221)); //Biru muda
g.fillRect(0,0,500,50); //Perbatasan Utara
g.fillRect(0,0,50,500); //Perbatasan Barat
g.fillRect(0,450,500,50); //Perbatasan Selatan
g.fillRect(450,0,50,500); //Perbatasan Timur
currentInstruction = new objPaintInstruction(0,0,8);
vecPaintInstructions.addElement(currentInstruction);
}
g.setColor(new Color(75,141,221));
g.fillRect(50,450,450,50); //Paint over the current status text
for (int i = 0; i <>
{
currentInstruction = (objPaintInstruction)vecPaintInstructions.elementAt(i);
int startRow = currentInstruction.getStartRow();
int startColumn = currentInstruction.getStartColumn();
int rowCells = currentInstruction.getRowCells();
int columnCells = currentInstruction.getColumnCells();
for (int row = startRow; row < (startRow + rowCells); row++)
{
for (int column = startColumn; column < (startColumn + columnCells); column++)
{
drawTile(row, column, g);
}
}
}
drawExtra(g);
}
private void drawTile (int row, int column, Graphics g)
{
if ((row + 1) % 2 == 0)
{
if ((column + 1) % 2 == 0)
{
g.setColor(new Color(255,255,255)); //putih
}
else
{
g.setColor(new Color(0,0,0)); //hitam
}
else
{
if ((column + 1) % 2 == 0)
{
g.setColor(new Color(0,0,0));
}
else
{
g.setColor(new Color(255,255,255));
}
}
g.fillRect((50 + (column * 50)), (50 + (row * 50)), 50, 50);
}
//Protected berarti hanya dapat digunakan oleh kelas ini, dan kelas memperluas itu dilindungi drawExtra void (Graphics g) //Setiap kelas memperpanjang papan catur dapat menggunakan metode ini untuk menambahkan hal-hal ekstra seperti potongan-potongan pemain
{
}
protected int findWhichTileSelected (int coor) //Finds which tile the mouse is over
{
for (int i = 0; i <>
{
if ((coor >= (50 + (i * 50))) && (coor <= (100 + (i * 50))))
{
return i;
}
}
return -1;
}
}
Struktur :
- Class : ObjKnight, ObjCellMatrix, ObjQueen, ObjRock, ObjBishop, ObjKing, dll.
- Method : bisa dilihat dr 2 contoh sintax diatas
- Variable : warna merah dan biru, perbedaan langkah antara king,queen,kinght dan lainnya tentu berbeda, dll
- array bisa dilihat dari contoh sintaxnya juga.
- dll
sekian tugas ini saya coba kerjakan semaximal mungkin, mohon kritik dan sarannya. terima kasih.

