GUNADARMA OF UNIVERSITY

TEKNIK INFORMATIKA'09

Kamis, 30 September 2010

Game java

//mengimport class javax.swing untuk membuat tampilan GUI
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