import javax.swing.*;
//membuat kelas kloset yang mempunyai 3 method untuk digunakan dipermainan
class kloset{
protected String nama,namaMonster; //deklarasi variabel bersifat protected agar tidak bisa diakses dari luar
protected int pisang,jeruk;
//frame untuk messageDialog
JFrame frame = new JFrame();
//Constructor dari kelas kloset yang terdiri dari 4 variabel
kloset(String nama,String namaMonster,int pisang,int jeruk){
this.nama=nama;
this.namaMonster=namaMonster;
this.pisang=pisang;
this.jeruk=jeruk;
}
//method2 dibawah bersifat void artinya tidak mengembalikan nilai, nilai dari variabel akan diakses dari kelas utama
//method monstercloset untuk mengambil banana dan orange
void monsterCloset(){
pisang = 0;
jeruk = 0;
JOptionPane.showMessageDialog(frame,"WATCH OUT...!!!\n"+namaMonster+" attacks you and steal all of your bananas and oranges");
}
//method genieCloset untuk memberi banana sebanyak 2 dan orange sebanyak 1
void genieCloset(){
pisang += 2;
jeruk += 1;
JOptionPane.showMessageDialog(frame,"ABRAKADABRA...!!!\nA Genie grants you 2 bananas and 1 orange");
}
//method untuk mencetak gambar
void pictureCloset(){
JOptionPane.showMessageDialog(frame,"You Found the picture\n ******* \n * --- --- * \n* O *\n * --- *\n *******");
}
}
class tugas{
public static void main(String[] args){
//deklarasi variabel kelas utama
String nama,monster,pintu;
int random,jumlah;
int exit=0;
//frame untuk messagedialog
JFrame frame = new JFrame();
// perintah untuk menginput nama pemain dan nama monster dengan tampilan GUI
nama = JOptionPane.showInputDialog("Please enter your name : ");
monster = JOptionPane.showInputDialog("Name your scariest monster : ");
// menginstansiasi objek klst dari kelas kloset
kloset klst = new kloset(nama,monster,5,3);//constructor kelas kloset otomatis dipanggil dengan mengassign 4 variabel
//perulangan untuk memilih pintu dan perulangan akan berakhir ketika pemain menemukan pintu keluar
do{
//mencetak pesan sisa banana dan orange yang diaskses dari objeks klast tiap pemain selesai membuka pintu
JOptionPane.showMessageDialog(frame,nama +" You are in rooms with 4 doors\nYou are carrying "+klst.pisang+" bananas and "+ klst.jeruk+" oranges");
//input filter checking : perintah dibawah untuk mengulangi input jika pemain memasukan kata selain w,n,e,dan s
do{
//perintah untuk memasukan input pintu mana yang harus dibuka
pintu = JOptionPane.showInputDialog("Pick a door to open by typing[W/N/E/S] : ");
pintu = pintu.toUpperCase();
}while(pintu.equals("W")==false && pintu.equals("N")==false && pintu.equals("E")==false && pintu.equals("S")==false);
/*teknik random :merandom angka 1 sampai 4 untuk randomisasi pemanggilan method sehingga pintu W yang dibuka saat pertama
hasilnya tidak akan sama pada saat pintu W dibuka kedua kalinya */
random = 1 +(int)(Math.random()*4);
//case untuk pemanggilan method
switch(random){
case 1: klst.monsterCloset();break;
case 2: klst.genieCloset();break;
case 3: klst.pictureCloset();break;
case 4: exit=1;break;
}
}while(exit==0);
//mencetak pesan terakhir dengan menampilkan score
jumlah = klst.pisang + klst.jeruk;
JOptionPane.showMessageDialog(frame,"You Found the exit\n " + "Your score is "+jumlah+"("+klst.pisang+" bananas and " +klst.jeruk+" orange )\nBye... Bye");
}
}
pengertian dari Game ini yaitu :
Ini adalah sebuah game petualangan. Dalam game ini , pemain akan mulai di dalam suatu ruangan dengan 4 pintu. 3 buah pintu berisi kloset dan 1 buah pintu berisi jalan keluar. Dalam 3 pintu yang berisi kloset : 1 pintu berisi monster , 1 buah pintu berisi genie , dan 1 buah pintu berisi picture.
Pada saat pertama kali, pemain akan mendapat 2 buah barang yaitu banana dan orange. Banana sebanyak 5 dan orange sebanyak 3.
The game should ask the player to open the door.
If the player opens the closet with the monster inside, the monster will steal all of bananas
and oranges the user is holding.
If the player opens the closet with the genie inside, the genie will give the user 2 bananas
and 1 oranges.
If the player opens the closet with the picture inside, the game should just drawn the
picture on the screen.
Finally, if the player chooses the door to exit, the game should end.
When the game ends, give the player his/her score. The score is the total number of
bananas and oranges that the player is holding when exits the room.
You must write each function/method for each closet. When the player chooses a door in a
certain direction (W/N/E/S), the program should call the function/method for the closet in that
direction or end program if they choose the door to exit. You will need variables to store the
number of bananas and oranges the player has on them.
Here is what each function should do :
Monster closet, Reduce the value of the variables storing the number of bananas and
oranges to 0. This function should also tell the player what monster attack them. At the
beginning of the program, you should ask the user for scariest monster they can think of
and then store their answer in a string variable. Pass the type of monster into the function
to use as the monster attack them
Genie closet, Increase the values of variables storing the number of bananas and oranges
by appropriate number (2 bananas and 1 orange). You should also have some massage
telling the player what happened.
Picture closet, draw a picture to the screen.
Bonus :
1. Have the closet and exit move around randomly from game to game, so the first game the
east door may the monster closet, the next game is played the east door may be the exit.
2. Input error checking (Only N/E/S/W can be chosen for direction)
3. Correct Output :
a. Output players name, when asking which door to open
b. Output players scariest monster from within monster
c. Output of items player has after opening each door
d. Output score before exiting the program
4. Method :
a. Do not use global variable
b. Monster method
c. Genie method
d. Picture method
5. style :
a. Good variable/function name
b. Proper indentation/spacing
c. Good comment
Tidak ada komentar:
Posting Komentar