• Tidak ada hasil yang ditemukan

Pada praktikum ini, anda akan mengimplementasikan sebuah game sederhana, bernama Smiley Face.

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pada praktikum ini, anda akan mengimplementasikan sebuah game sederhana, bernama Smiley Face."

Copied!
5
0
0

Teks penuh

(1)

Smiley

The Task

Pada praktikum ini, anda akan mengimplementasikan sebuah game sederhana, bernama “Smiley Face”.

Permainan ini terdiri dari sebuah gambar smiley face, dan 3 buah tombol yang dapat mengubah warna muka, mata, dan mulut. Tujuan dari permainan ini adalah untuk mencari jumlah terkecil dari klik tombol dalam menghasilkan warna-warni yang diinginkan. Face memiliki serangkaian ukuran serperti yang tertera pada gambar. Perhatikan pula pembuatan mulut yang terdiri dari dua oval yang berukuran beda.

Level 1

Buatlah smiley sederhana yang hanya memiliki mata. Tempatkan smiley di tengah-tengah window berukuran 600 pixel (lebar) x 500 pixel (tinggi).

Langkah-langkah pengerjaan:

1. Buka BlueJ dan buatlah sebuah projek baru dengan nama “Smiley”.

2. Edit deskripsi project (dengan ikon dokumen di sebelah kiri window BlueJ) sehingga berisikan keterangan project yang sedang Anda kerjakan.

3. Buatlah sebuah kelas director dengan cara menekan tombol New Class, beri nama kelas tersebut Smiley. Lalu editlah kelas tersebut.

Catatan penting: kelas director Smiley ini berfungsi untuk menjalankan (run) project Anda. Pada praktikum pertama, Anda telah menggunakan kelas director bernama Artist. Pada praktikum kedua ini, Anda harus membuat kelas director ini dari nol (saya tidak menyediakan file apapun)

4. Editlah kelas Smiley tersebut untuk menghasilkan gambar yang diinginkan, dengan cara menggunakan Director pattern (baca materi kuliah ketiga) untuk menstrukturkan program Anda. Kelas director (yang bernama Smiley ini) diperlukan untuk membuat/menginstansiasi objek-objek yang diperlukan dan memanggil method-method dari objek-objek tersebut sehingga menghasilkan gambar yang memiliki posisi dan ukuran yang benar. Anda perlu mempelari dokumentasi dari aLibrary yang ada pada direktori aLibDoc yang disertakan pada praktikum ini. Untuk membuka dokumentasi aLibrary, klik file

index.html, lalu pelajari dua buah objek penting yang akan digunakan pada stage 1 ini.

Objek yang digunakan pada stage 1 ini adalah AWindow dan AOval. AWindow berfungsi sebagai window tempat untuk memunculkan gambar, sedangkan AOval berfungsi untuk menggambar muka dan mata. Anda perlu mempelajari deskripsi dari kedua kelas tersebut pada dokumentasi yang telah disediakan, lalu mencari tahu method-method apa saja yang diperlukan serta parameter apa yang perlu disertakan pada method-method tersebut. Gunakan metode Declare-Instantiate-Bind (kuliah 3) untuk

140 50 100 40 30 100 80 30 80 100 10 140 200 100 50

(2)

setiap variable yang Anda gunakan. Perhatikan pula pemilihan dan penulisan nama-nama variable, ikuti konvensi yang telah diajarkan di kuliah 3.

Apabila Anda telah membuat (instantiate) objek muka dan mata yang diperlukan, jangan lupa untuk memanggil method place yang berfungsi untuk menempatkan objek muka dan mata tersebut pada objek window yang telah Anda buat. Constructor dari kelas Smiley ini harus diakhiri dengan pemanggilan method repaint-nya objek window untuk me-refresh gambar dengan benar.

Berikut skeleton yang bisa Anda pergunakan untuk memulai praktikum ini: import aLibrary.*;

import java.awt.*; public class Smiley {

// deklarasi variable-variabel yang digunakan // misal:

private AWindow papanPermainan; public Smiley () {

// instansiasi objek-objek yang diperlukan // misal:

papanPermainan = new AWindow(100,100, 100, 100); // pemanggilan method-method dari objek-objek tsb // misal:

papanPermainan.repaint(); }

}

/* Catatan:

aLibrary ini berisi kelas-kelas dan method-method yang akan dipergunakan selama praktikum (Anda harus rajin-rajin membaca dokumentasinya).

java.awt berisi kelas-kelas untuk menghasilkan graphic di Java (sementar ini, Anda tidak perlu membaca dokumentasi mengenai java.awt ini, cukup di-import saja)

*/

5. Compile kode Anda, perbaiki setiap eror yang ada.

6. Apabila proses compile telah berhasil, ujilah pekerjaan Anda dengan cara membuat sebuah instance dari

Smiley. Jika gambar yang dihasilkan belum benar, ulangi langkah edit-compile-run sampai

menghasilkan gambar yang diinginkan.

(3)

Level 2

Modifikasi gambar tersebut dengan cara menambahkan mulut dan dimples (dua bulatan kecil di pinggir mulut).

Anda harus berhati-hati dalam merencanakan objek-objek yang Anda perlukan, serta method-method yang perlu dipanggil dalam rangka menghasilkan gambar yang benar. Ingat: berikan nama-nama yang representatif untuk setiap objek yang Anda buat.

Sebagai petunjuk: untuk menggambar mulut yang lengkap beserta dimples-nya, Anda memerlukan 4 buah objek AOval. Satu untuk mulut, satu untuk menutupi mulut, dan dua untuk dimples. Anda juga harus memperhatikan warna dan posisi dari masing-masing objek.

Checkpoint: Tunjukkan gambar dan kode yang dihasilkan.

Level 3

Modifikasi program yang Anda buat sedemikian rupa sehingga Anda dapat menekan tombol-tombol yang berfungsi untuk mengubah warna.

Pada level 3 ini, Anda harus menggunakan objek A3ButtonWindow yang berfungsi sebagai window tempat menempatkan objek muka, mata dan mulut (Anda tidak lagi menggunakan objek AWindow seperti di level 2). Untuk menggunakan A3ButtonWindow ini, pelajari dokumentasinya

Anda juga perlu memodifikasi kelas director Smiley ini dengan cara meng-ekstends kelas A3ButtonHandler. (extends akan dipelajari di kuliah yad)

Setelah Anda selesai membuat objek-objek yang diperlukan, langkah selanjutnya adlaan mendefinisikan method-method callback untuk setiap tombol, yaitu leftAction, midAction, dan rightAction.

Berikut adalah fungsi/perilaku dari ketiga tombol tersebut:

leftAction: mengubah warna mata menjadi biru, dan mulut menjadi merah

rightAction: mengubah warna muka menjadi pink

midAction: me-reset warna ke warna originalnya (muka kuning, mata dan mulut hitam) Berikut adalah skeleton yang bisa Anda pergunakan untuk memulai level 3 ini:

import aLibrary.*; import java.awt.*;

public class Smiley extends A3ButtonHandler{ // deklarasi variable-variabel yang digunakan // misal:

(4)

private A3ButtonWindow papanPermainan; public Smiley {

// instansiasi objek-objek yang diperlukan // misal:

papanPermainan = new A3ButtonWindow(this);

// note: penggunaan ‘this’ akan dipelajari di kuliah yad. // Panggil method-method dari objek-objek tsb

// misal:

papanPermainan.repaint(); }

// Definisikan method-method callback yang dimiliki oleh kelas A3ButtonWindow // misal:

public void leftAction (){

/* panggil method-method dari objek mata, mulut, maupun dimples untuk mengubah warna objek-objek tersebut */

// di akhir method ini, jangan lupa panggil: papanPermainan.repaint() }

//Sebelum di-compile, tambahkan juga method untuk midAction() dan rightAction() }

Checkpoint: tunjukan kode dan gambar yang dihasilkan.

Level 4 – ‘The game begins!’

Sekarang saatnya untuk memulai permainan dari praktikum ini!

Ide dasarnya adalah pada saat Anda menekan tombol-tombol, maka akan terjadi pertukaran warna (swap) muka, mata, dan mulut. Tujuan akhir permainan ini adalah untuk mencari jumlah minimum penekanan tombol untuk menghasilkan warna-warni yang diinginkan.

Untuk menukar warna dari dua objek, gunakan pola pertukaran dua variable (Swap pattern). Berikut contoh pertukaran dua variable:

nilaiX = 10 nilayY=20 temp = nilaiX nilaiX = nilaiY nilaY = temp

(5)

swapColor (AOval ovalSatu, AOval ovalDua), yang isinya menukar warna milik ovalSatu ke ovalDua

dan sebaliknya warna ovalDua ke ovalSatu.

Untuk menukarkan warna, Anda perlu membuat sebuah variable baru bertipe Color, kemudian gunakanlah method getColor untuk mendapatkan warna dari setiap objek, serta gunakanlah method setColor untuk mengubahnya. (Sekali lagi pelajari dokumentasi setiap kelas di aLibrary untuk penggunaan getColor dan setColor ini).

Ubahlah perilaku dari callback method (tombol), sebagai berikut: Change the callback methods so that they work as follows:

Tombol kiri: menukar warna mata kiri dengan warna muka

Tombol kanan: menukar warna mata kanan dan warna muka

Tombol middle: menukar warna mulut dengan warna muka Untuk menguji permainan ini, iisialiasi-lah objek-objek yang ada sebagai berikut:

Mata kiri  merah Mata kanan  hijau Mulut  biru

Berapa kali tombol-tombol di-klik untuk menghasilkan warna sbb: Mata kiri  biru

Mata kanan  merah Mulut  hijau

(solusi terbaik adalah 4 klik, Anda perlu bereksperimen terlebih dahulu)

Checkpoint: Tunjukkan kode dan hasil permainan Anda.

Level 5

Make the game a bit more interesting by adding an incentive to find the best solution.

Specifically, add another object to the face (an eyelid) to make it look like the eyes are closing. When you start the game, the eyes are fully open. Each time you click a button, make the eyelid move down by 10 pixels. Since the eyes are 80 pixels high, by the time you've clicked 8 times the eyes will be fully closed. The object of the game is to achieve the desired color configuration before the Smiley goes to sleep!

Checkpoint: Show a demonstrator your working game, together with an editor window showing the source code.

Referensi

Dokumen terkait

Lokal Bima yang toleran terhadap cekaman larutan polietilena glikol (PEG). Percobaan diawali dengan menginduksi ES kacang tanah. Induksi mutasi dengan sinar

Jika dilihat dari nilai p-value maka didapatkan hasil bahwa nilai p-value kurang dari nilai

Dalam tulisan ini dikemukakan hasil penelitian pembuatan papan untai bambu berarah yang dibuat dari bambu tali (Gigantochloa apus (J.A. Schultes) Kurz) menggunakan

Persepsi sosial pria transgender terhadap pekerja seks komersial secara umum adalah seorang wanita yang bekerja memberi layanan seks komersial yang berpenampilan

Untuk membahas cara ini perlu dibicarakan lebih lanjut pada bab tersendiri.Kalau tunnel terlalu panjang, sampai 1.000 feet atau 3 kilometer panjangnya, maka diperlukan

Menurut Manuaba (2008; h.389) disebutkan perdarahan terjadi karena gangguan hormon, gangguan kehamilan, gangguan KB, penyakit kandungan dan keganasan genetalia. 55)

H300 - Berbahaya jika tertelan, H315 - Menyebabkan iritasi kulit, H334 - Bisa menyebabkan gejala alergi atau asma atau kesulitan bernapas jika terhirup, H335 - Bisa menyebabkan

“Masalah perempuan dan kemiskinan terutama dikarenakan kemiskinan struktural akibat kebijakan pembangunan dan sosial budaya yang berlaku, keterbatasan kesempatan pendidikan