Program
java ini pengembangan dari posting sebelumnya yaitu Program java memindahkanhuruf A.
Program
java kali ini akan memindahkan huruf “A”
ke kiri, kanan, atas atau bawah dengan menekan tombol A, D, W atau X, dirubah
untuk memudahkan menekan tombol tidak terlalu jauh tombol – tombolnya. Program
ini mengunakan variabel Array 2 dimensi yaitu variabel xy tipe string.
Tombol
A : memindahkan huruf “A” ke kiri.
Tombol
D : memindahkan huruf “A” ke kanan.
Tombol
W : memindahkan huruf “A” ke atas.
Tombol
x : memindahkan huruf “A” ke bawah.
Pertama
kali dijalankan program akan menampilkan delapan baris dan delapan kolom, baris pertama kolom pertama adalah
huruf “A” yang lainnya “.”.
A
. . . . .
. .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
Tekan (A(kiri), D(kanan), W(atas), X(bawah),
1-5(Level), E(Keluar) :
Tombol
level untuk merubah jumlah baris dan kolom,
Tombol
1 : (4 x 4)
Tombol
2 : (5 x 5)
Tombol
3 : (6 x 6)
Tombol
4 : (7 x 7)
Tombol
5 : (8 x 8)
Jika
tekan tombol D, huruf “A” akan pindah ke kanan,
.
A . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
.
. . .
. . . .
Tekan
(A(kiri), D(kanan), W(atas), X(bawah), 1-5(Level), E(Keluar) :
Anda
bisa mencoba untuk tombol yang lain, perhatikan huruf “A” akan berpindah-pindah
Untuk
mengakhiri tekan tombol “E”.
Program
lengkapnya sebagai berikut:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Amove {
public static void main( String[] args )
{
int x=0;
int y=0;
int xA=0;
int yA=0;
int makX=3;
int makY=3;
String tombol="";
while ( (!"E".equalsIgnoreCase(tombol)) )
{
for (y = 0 ; y <= makY ; y++)
{
for (x = 0; x <= makX ; x++)
{
if (x==xA && y==yA)
{
System.out.print(" A ");
} else {
System.out.print(" . ");
}
}
System.out.println("");
}
BufferedReader dataIn = new BufferedReader(new
InputStreamReader( System.in) );
System.out.print("Tekan (L(kiri), R(kanan), U(atas), D(bawah), 1-5(Level), E(Keluar) :");
try{
tombol = dataIn.readLine();
} catch( IOException e )
{
System.out.println("Error!");
}
if ("L".equalsIgnoreCase(tombol))
{
xA = xA - 1;
if ( xA < 0 ) xA = 0;
}
if ("R".equalsIgnoreCase(tombol))
{
xA = xA + 1;
if ( xA > makX) xA = makX;
}
if ("U".equalsIgnoreCase(tombol))
{
yA = yA - 1;
if (yA < 0 ) yA = 0;
}
if ("D".equalsIgnoreCase(tombol))
{
yA = yA + 1;
if (yA > makY ) yA = makY;
}
if ("1".equals(tombol)) { makX=3; makY=3; }
if ("2".equals(tombol)) { makX=4; makY=4; }
if ("3".equals(tombol)) { makX=5; makY=5; }
if ("4".equals(tombol)) { makX=6; makY=6; }
if ("5".equals(tombol)) { makX=7; makY=7; }
}
}
}
import java.io.InputStreamReader;
import java.io.IOException;
public class Amove {
public static void main( String[] args )
{
int x=0;
int y=0;
int xA=0;
int yA=0;
int makX=3;
int makY=3;
String tombol="";
while ( (!"E".equalsIgnoreCase(tombol)) )
{
for (y = 0 ; y <= makY ; y++)
{
for (x = 0; x <= makX ; x++)
{
if (x==xA && y==yA)
{
System.out.print(" A ");
} else {
System.out.print(" . ");
}
}
System.out.println("");
}
BufferedReader dataIn = new BufferedReader(new
InputStreamReader( System.in) );
System.out.print("Tekan (L(kiri), R(kanan), U(atas), D(bawah), 1-5(Level), E(Keluar) :");
try{
tombol = dataIn.readLine();
} catch( IOException e )
{
System.out.println("Error!");
}
if ("L".equalsIgnoreCase(tombol))
{
xA = xA - 1;
if ( xA < 0 ) xA = 0;
}
if ("R".equalsIgnoreCase(tombol))
{
xA = xA + 1;
if ( xA > makX) xA = makX;
}
if ("U".equalsIgnoreCase(tombol))
{
yA = yA - 1;
if (yA < 0 ) yA = 0;
}
if ("D".equalsIgnoreCase(tombol))
{
yA = yA + 1;
if (yA > makY ) yA = makY;
}
if ("1".equals(tombol)) { makX=3; makY=3; }
if ("2".equals(tombol)) { makX=4; makY=4; }
if ("3".equals(tombol)) { makX=5; makY=5; }
if ("4".equals(tombol)) { makX=6; makY=6; }
if ("5".equals(tombol)) { makX=7; makY=7; }
}
}
}
Penjelasan Program:
1. Variabel Array 2 dimensi xy
tipe dengan panjang 8 dan 8.
String
xy[][] = new String[8][8];
2. Variabel x tipe integer
untuk kolom dan y untuk baris.
int x=0;
int
y=0;
3. Variabel xA0 dan yA0
tipe integer untuk menyimpan nilai variabel xA1 dan yA1. Variabel
xA1 untuk kolom dan yA1 untuk baris dimana huruf “A” disimpan pada
variabel Array xy[yA1][xA1] bernilai “ A ”.
int xA0=0;
int
yA0=0;
int
xA1=0;
int
yA1=0;
4. Variabel makX tipe integer untuk kolom dan
makY untuk baris adalah jumlah kolom dan baris.
int makX=7;
int
makY=7;
5. Dengan menggunakan
pengulangan untuk memberi nilai variabel Array xy, dimana nilai xy[0][0] = “ A
“ sedangan lainnya berniai “ . “.
for (y = 0 ; y <= makY ; y++)
{
for
(x = 0; x <= makX ; x++)
{
if
(x==xA1 && y==yA1)
{
xy[y][x]="
A ";
}
else {
xy[y][x]="
. ";
}
}
}
6. Variable tombol tipe
string untuk tombol yang di tekan.
String
tombol="";
7. Pengulangan selama tombol yang ditekan bukan
“E” atau “e”.
while (
(!"E".equalsIgnoreCase(tombol)) )
8. Pengulangan
untuk menampilan variabel Arral xy.
for (y = 0 ; y <= makY ; y++)
{
for
(x = 0; x <= makX ; x++)
{
System.out.print(xy[y][x]);
}
System.out.println("");
}
9. Untuk memasukan nilai
variabel tombol dengan menekan tombol keyboard.
BufferedReader
dataIn = new BufferedReader(new
InputStreamReader(
System.in) );
System.out.print("Tekan
(A(kiri), D(kanan), W(atas), X(bawah), 1-5(Level), E(Keluar) :");
try{
tombol
= dataIn.readLine();
}
catch( IOException e )
{
System.out.println("Error!");
}
10. Jika nilai “ A “
berpindah maka dari variabel lama haru diganti nilai menjadi “ . “ dan variabel
baru menjadi “ A “, dibawah ini perintah
unetuk menyimpan Array variabel lama. Dimana x[yA0][xA0] variabel Arral lama yg
berisi “ A “ .
xA0=xA1;
yA0=yA1;
11. Jika nilai tombol
samadengan “A” atau “a” maka nilai variabel xA1 berkurang 1, jika
hasil akhir nilai xA1 kurang dari 0 maka
nilai xA1 adalah 0.
if ("A".equalsIgnoreCase(tombol))
{
xA1
= xA1 - 1;
if
( xA1 < 0 ) xA1 = 0;
}
12. Jika nilai tombol samadengan “D” atau “d”
maka nilai variabel xA1 bertambah 1,
jika
hasil akhir nilai xA1 lebih dari makX maka
nilai xA1 adalah makX.
if ("D".equalsIgnoreCase(tombol))
{
xA1
= xA1 + 1;
if
( xA1 >makX ) xA1 = makX;
}
13. Jika nilai tombol samadengan
“W” atau “w” maka nilai variabel yA1 berkurang 1, jika hasil akhir nilai yA1 kurang dari 0 maka
nilai yA1 adalah 0.
if ("W".equalsIgnoreCase(tombol))
{
yA1
= yA1 - 1;
if
( yA1 < 0 ) yA1 = 0;
}
14. Jika nilai tombol
samadengan “X” atau “x” maka nilai variabel yA1 bertambah 1, jika
hasil akhir nilai yA1 lebih dari makY maka
nilai yA 1adalah makY.
if ("X".equalsIgnoreCase(tombol))
{
yA1
= xA1 + 1;
if
( yA1 >makY ) yA1 = makY;
}
12. Merubah nilai variabel
Array yang bernilai “ A “menjadi “ . “ yaitu xy[yA0][xA0] dan merubah nilai variabel Array yang bernilai “
. “menjadi “ A “ yaitu xy[yA1][xA1].
xy[yA0][xA0]="
. ";
xy[yA1][xA1]=" A ";
12. Merubah nilai variabel
makX dan makY saat menekan ( 1 sd 5)
if ("1".equals(tombol)) {
makX=3; makY=3; }
if
("2".equals(tombol)) { makX=4; makY=4; }
if
("3".equals(tombol)) { makX=5; makY=5; }
if
("4".equals(tombol)) { makX=6; makY=6; }
if
("5".equals(tombol)) { makX=7; makY=7; }
Tampilan Program:
-->
Demikian program Amove.java
semoga bermanfaat.