Pada posting kali ini akan membuat program java dengan menggunakan variabel Array 2 Dimensi yaitu membuat permainan mengurutkan angka dengan variabel Array Java.
Untuk dapat mencoba program java ini, komputer di Install JDK yang bisa di download pada website Oracle, selanjut diatur claspath. Jika anda pakai windows buat folder C:\java untuk menyimpan program java. Pakai progam notepad / notepad+ untuk penulisan coding java. Coding java tinggal salin ke notepad+ dan disimpan dengan nama AmoveArray2.java di folde C:\java.
Langkah berikutnya buka command windows / CMD, masuk ke folder C:\java, lakukan perintan compile file AmoveArray.java dengan perintah :
C:\java\>javac AmoveArray.java
jika tidak ada komentar kesalahan berarti compile berhasil, jika muncul komentar kesalahan harus diperbaiki kesalahannya. Perintah compile akan membuat file class dengan nama AmoveArray.class.
file class dapat dijalankan dengan perintah java file_class, contohnya :
C:\java\>java AmoveArray
maka akan muncul tampilan program javanya
Tampilan pertama "#####" terus angka "8", "7", sampai dengan "1", jika kita menekan tombol D atau d maka ##### akan berpindah ke kanan, dan angka sebelah kanan "8" akan peindah ke tempat "#####".
Tombol X atau x akan memindahkan "#####" ke bawah.
Tombol A atau a memindahkan "#####" ke kiri.
Tombol w atau W akan memindahan "#####" ke atas.
Lakukan terus sampai permainan ini menang jika sudah urut dari "1" sampai "8".
1 2 3
4 5 6
7 8 #####
Coding lengkapnya :
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class AmoveArray2 {
public static void main( String[] args )
{
// Variabel Array xy 2 dimensi 3 x 3
String xy[][] = new String[3][3];
// Variabel untuk posisi variabel array xy[y][x] dimulai
// xy[0][0]
int x=0;
int y=0;
// Varibel xy[yA0][xA0] nilainya akan dipindahkan ke
// xy[yA1][xA1] dan nilai xy[yA1][xA1] akan dipindahkan ke
// xy[yA0][xA0]
int xA0=0;
int yA0=0;
int xA1=0;
int yA1=0;
// Variabel untuk panjang Array
int makX=2;
int makY=2;
// xySem variabel swiching
String xySem = "";
// variabel nilai yang awal yang dimasukan ke variabel Array
int a=8;
// Pengulangan untuk memberi nilai pada variabel array xy
for (y = 0 ; y <= makY ; y++)
{
for (x = 0; x <= makX ; x++)
{
if (x==xA1 && y==yA1)
{
xy[y][x]="#####";
} else {
xy[y][x]=" "+Integer.toString(a)+" ";;
a=a-1;
}
}
}
// variabel tombol
String tombol="";
// Pengulangan sampai menekan tombol E atau e
while ( (!"E".equalsIgnoreCase(tombol)) )
{
// Pengulangan mencetak variabel Array
System.out.println("");
for (y = 0 ; y <= makY ; y++)
{
for (x = 0; x <= makX ; x++)
{
System.out.print(xy[y][x]);
}
System.out.println("");
System.out.println("");
}
// Memasukan variabel tombol
BufferedReader dataIn = new BufferedReader(new
InputStreamReader( System.in) );
System.out.print("Tekan (A(kiri), D(kanan), W(atas), X(bawah), E(Keluar) :");
try{
tombol = dataIn.readLine();
} catch( IOException e )
{
System.out.println("Error!");
}
// Menyinpan nilai variabel xA1 dan yA1 pada variabel xA0 dan yA0
xA0=xA1;
yA0=yA1;
// Jika tombol di tekan huruf A atau a
if ("A".equalsIgnoreCase(tombol))
{
// Nilai xA1 dikurang 1
xA1 = xA1 - 1;
// Jika xA1 < 0 maka xA1 diberi nilai 0
if ( xA1 < 0 ) xA1 = 0;
}
// Jika tombol di tekan huruf D atau d
if ("D".equalsIgnoreCase(tombol))
{
// Nilai xA1 ditambah 1
xA1 = xA1 + 1;
// Jika xA1 > makX maka xA1 diberi nilai makX (panjang array)
if ( xA1 > makX) xA1 = makX;
}
// Jika tombol di tekan huruf W atau w
if ("W".equalsIgnoreCase(tombol))
{
// Nilai yA1 dikurang 1
yA1 = yA1 - 1;
// Jika yA1 < 0 maka yA1 diberi nilai 0
if (yA1 < 0 ) yA1 = 0;
}
// Jika tombol di tekan huruf X atau x
if ("X".equalsIgnoreCase(tombol))
{
// Nilai yA1 ditambah 1
yA1 = yA1 + 1;
// Jika yA1 > makY maka yA1 diberi nilai maky (panjang array)
if (yA1 > makY ) yA1 = makY;
}
// Menyimpan nilai variabel xy[yA0[xA0] pada varibel xySem
xySem = xy[yA0[xA0];
// Mengganti nilai varibel xy[yA0][xA0] dengan nilai varibel xy[yA1][xA1]
xy[yA0][xA0]= xy[yA1][xA1];
// Mengganti nilai varibel xy[yA1][xA1] dengan nilai variabel xy[yA0][xA0]
// sebelum diganti nilainya yaitu tersimpan pada variabel xySem
xy[yA1][xA1]= xySem;
}
}
}