22 Juli 2009

Source Code Game j2me - Tebak Kata

Ehm, ini salah satu persiapan projec UAS di semester 4 kemarin, Temanya Game Mobile menggunakan java. Ehmm, nyoba dicoba akhirnya ketemu sama game tebak kata ini. Gamenya sederhana dan simple, Dengan memanfaatkan file txt sebagai penyimpan datanya, game ini sudah bisa dimainkan dengan asyik di HP anda. Disini kita membutuhkan file data.txt yang berisi jawaban dan pertanyaan dari setiap kata. di baris genap adalah jawaban, dan baris ganjil adalah pertanyaan / clue nya. sebagai contoh isi file txt adalah sebagai berikut :

wudhu
Hal yang harus dilakukan sebelum shola bagi umat muslim
puasa
Menahan lapar dan haus, juga hawa nafsu

di atas hanya contoh saja, anda bisa mengembangkan dan menambah senidir isi filenya, silahkan memodifikasi program ini, kalau sudah dapat ilmunya terus di sharing dengan saya .. :)

Ini source code game j2me nya...



import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
import java.util.Vector;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.midlet.*;

public class Main extends MIDlet implements CommandListener {

private Display display;
private Form form;
private TextField tebak;
private StringItem tfSoal, tfJawab, tfNilai, tfSalah, tfBenar, tfPeluang;//, taClue;
private Vector kata;
private Command exitCommand, okCommand, startCommand, clueCommand;
String jawaban = "";
String jawaban2 ="";
int panjang = 0;
int gagal = 0;
int sukses = 0;
int nilai = 0;
int num;
String benar = "***************************";
String salah = "";
String catatan = " ";

public Main() {
form = new Form("GAME TEBAK KATA");
tfSoal = new StringItem("Tebakan: \n", "Tebak Kata");
tfJawab = new StringItem("Jawab Salah\t : ", "-");
tfNilai = new StringItem("Nilai\t : ", "0");
tfSalah = new StringItem("Salah\t : ", "0");
tfBenar = new StringItem("Benar\t : ", "0");
tfPeluang = new StringItem("Peluang\t : ", "0");
//taClue = new StringItem("Petunjuk: \n", "Petunjuk menjawab ada disini");
tebak = new TextField("Masukan Huruf: \n", "-", 1, TextField.ANY);
kata = new Vector();
exitCommand = new Command("Exit", Command.EXIT, 1);
okCommand = new Command("OK", Command.OK, 3);
startCommand = new Command("Start", Command.OK, 3);
clueCommand = new Command("Lihat Clue", Command.OK, 3);


form.append(tebak);
form.append(tfSoal);
form.append(tfJawab);
//form.append(taClue);
form.append(tfNilai);
form.append(tfBenar);
form.append(tfSalah);
form.append(tfPeluang);
form.addCommand(exitCommand);
form.addCommand(okCommand);
form.addCommand(startCommand);
form.addCommand(clueCommand);
form.setCommandListener(this);
Inisialisasikata();
// backsound();

}

public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(form);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
notifyDestroyed();
}

public void Inisialisasikata() {
InputStream baca = this.getClass().getResourceAsStream("data.txt");
try {
StringBuffer buf = new StringBuffer();
int c;
int xy = 0;
while ((c = baca.read()) != -1) {
char ch = (char) c;
if (ch == '\n') {
kata.addElement(buf.toString());
buf.delete(0, buf.length());
xy++;
} else {
buf.append(ch);
}
}
baca.close();
} catch (Exception e) {
System.out.println("Unable to create stream");
}
System.out.println(kata.size());
System.out.println(kata.elementAt(0));
for (int yx = 0; yx <>
System.out.print(kata.elementAt(yx));
}
}

public void mulai() {
int batasatas = kata.size();
int batasbawah = 0;

do {
Random r = new Random();
num = (r.nextInt() >>> 1) % (batasatas + 1 - batasbawah) + batasbawah;
} while (num % 2 != 0);
jawaban = kata.elementAt(num).toString();
panjang = jawaban.length();
jawaban = jawaban.substring(0,panjang-1);
panjang = jawaban.length();
//panjang = panjang -1;
benar = "***************************";
tfSoal.setText("");
tfJawab.setText("");
catatan = "";
for (int s = 0; s <>
tfSoal.setText(tfSoal.getText() + "*");
tfPeluang.setText("5");
}
//taClue.setText(kata.elementAt(num + 1).toString());
Alert clue = new Alert("Pertanyaan");
clue.setString(kata.elementAt(num + 1).toString());
clue.setTimeout(clue.FOREVER);
display.setCurrent(clue, form);
}

public void cekKata(String huruf) {
tfSoal.setText("");
if (panjang == 0) {
tfJawab.setText("");
} else {
for (int i = 0; i <>
if ((benar.charAt(i) + "").equals("*")) {
if ((jawaban.charAt(i) + "").equals(huruf)) {
tfSoal.setText(tfSoal.getText() + huruf);
} else {
tfSoal.setText(tfSoal.getText() + benar.charAt(i));
salah += huruf; // Tebakan karakter yang salah di masukan dalam fiel "Salah"
}
} else {
tfSoal.setText(tfSoal.getText() + benar.charAt(i));
salah += benar.charAt(i);
}
}

if (salah.length() == jawaban.length()) {
tfJawab.setText(tfJawab.getText() + huruf);
}

benar = tfSoal.getText();
salah = "";
catatan += catatan;
int define = 5;
int counter = tfJawab.getText().length();
tfPeluang.setText(define - counter + "");
if (benar.equals(jawaban) && benar != "") {
tfJawab.setText("GOOD!!!");
sukses = sukses + 1;
nilai = nilai + 1;
tfBenar.setText(sukses + "");
tfNilai.setText(nilai + "");
tfSoal.setText(jawaban);
panjang = 0;
//taClue.setText("");
}

if (tfJawab.getText().length() == 5) {
tfJawab.setText("GAGAL!!!");
gagal = gagal + 1;
nilai = nilai - 1;
tfSalah.setText(gagal + "");
tfNilai.setText(nilai + "");
tfSoal.setText(jawaban);
panjang = 0;
tebak.setString("-");
//tfSoal.setText("Klik Start");
tfPeluang.setText("0");
//taClue.setText("");
}
}
}

public void backsound() {
try {
InputStream is = getClass().getResourceAsStream("dzikir.wav");
Player p = Manager.createPlayer(is, "audio/X-wav");
p.start();
} catch (IOException ioe) {
} catch (MediaException me) {
}
}

public void commandAction(Command c, Displayable d) {

if (c == startCommand) {
mulai();
tebak.setString("");
} else if (c == exitCommand) {
destroyApp(true);
} else if (c == clueCommand) {
Alert clue = new Alert("Pertanyaan");
clue.setString(kata.elementAt(num + 1).toString());
clue.setTimeout(clue.FOREVER);
display.setCurrent(clue, form);


} else if (c == okCommand) {
String cek = tebak.getString().toString();
Alert alert = new Alert("Ups ada Kesalahan !");
alert.setString("\tField Tidak boleh Kosong !");

if (cek.equals("-")) {
Alert alertMulai = new Alert("Ups ada Kesalahan !");
alertMulai.setString("\t Klik Start terlebih dahulu !");
alertMulai.setTimeout(1000);
display.setCurrent(alertMulai, form);
} else if (cek.equals("")) {
alert.setTimeout(1000);
display.setCurrent(alert, form);
} else if (cek.equals("a") || cek.equals("A")) {
cekKata("a");
tebak.setString("");
} else if (cek.equals("b") || cek.equals("B")) {
cekKata("b");
tebak.setString("");
} else if (cek.equals("c") || cek.equals("C")) {
cekKata("c");
tebak.setString("");
} else if (cek.equals("d") || cek.equals("D")) {
cekKata("d");
tebak.setString("");
} else if (cek.equals("e") || cek.equals("E")) {
cekKata("e");
tebak.setString("");
} else if (cek.equals("f") || cek.equals("F")) {
cekKata("f");
tebak.setString("");
} else if (cek.equals("g") || cek.equals("G")) {
cekKata("g");
tebak.setString("");
} else if (cek.equals("h") || cek.equals("H")) {
cekKata("h");
tebak.setString("");
} else if (cek.equals("i") || cek.equals("I")) {
cekKata("i");
tebak.setString("");
} else if (cek.equals("j") || cek.equals("J")) {
cekKata("j");
tebak.setString("");
} else if (cek.equals("k") || cek.equals("K")) {
cekKata("k");
tebak.setString("");
} else if (cek.equals("l") || cek.equals("L")) {
cekKata("l");
tebak.setString("");
} else if (cek.equals("m") || cek.equals("M")) {
cekKata("m");
tebak.setString("");
} else if (cek.equals("n") || cek.equals("N")) {
cekKata("n");
tebak.setString("");
} else if (cek.equals("o") || cek.equals("O")) {
cekKata("o");
tebak.setString("");
} else if (cek.equals("p") || cek.equals("P")) {
cekKata("p");
tebak.setString("");
} else if (cek.equals("q") || cek.equals("Q")) {
cekKata("q");
tebak.setString("");
} else if (cek.equals("r") || cek.equals("R")) {
cekKata("r");
tebak.setString("");
} else if (cek.equals("s") || cek.equals("S")) {
cekKata("s");
tebak.setString("");
} else if (cek.equals("t") || cek.equals("T")) {
cekKata("t");
tebak.setString("");
} else if (cek.equals("u") || cek.equals("U")) {
cekKata("u");
tebak.setString("");
} else if (cek.equals("v") || cek.equals("V")) {
cekKata("v");
tebak.setString("");
} else if (cek.equals("w") || cek.equals("W")) {
cekKata("w");
tebak.setString("");
} else if (cek.equals("x") || cek.equals("X")) {
cekKata("x");
tebak.setString("");
} else if (cek.equals("y") || cek.equals("Y")) {
cekKata("y");
tebak.setString("");
} else if (cek.equals("z") || cek.equals("Z")) {
cekKata("z");
tebak.setString("");
} else {
Alert clue = new Alert("Ups Ada yang Salah");
clue.setString("Ma'af, Karakter yang anda masukan salah! \n Silahkan Mengulangi Lagi !");
clue.setTimeout(1500);
display.setCurrent(clue, form);
}
}
}
}




Jika ada pertanyaan atau order tiket dengan senang hati kami melayani. Silakan Chat dengan Customer Service kami

Customer Support