Wanna $10??? klik & register now!!!

Kamis, 06 Mei 2010

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 :
  1. Class : ObjKnight, ObjCellMatrix, ObjQueen, ObjRock, ObjBishop, ObjKing, dll.
  2. Method : bisa dilihat dr 2 contoh sintax diatas
  3. Variable : warna merah dan biru, perbedaan langkah antara king,queen,kinght dan lainnya tentu berbeda, dll
  4. array bisa dilihat dari contoh sintaxnya juga.
  5. dll
sekian tugas ini saya coba kerjakan semaximal mungkin, mohon kritik dan sarannya. terima kasih.

Tidak ada komentar:

Posting Komentar