Wednesday, 11 May 2011

Ayo Menghitung Cepat (1)

Gambar 1. 1 x 1 = 2?

Akhirnya update juga blognya hehehe....  . Setelah sekian lama 'cuti'  dalam dunia pembloggeran hahaha. Kali ini kita akan membuat program kuis dengan tema hitung-hitungan. Kita mulai dengan yang sederhana terlebih dahulu dengan melakukan perkalian antara 2 buah bilangan. Nggak perlu basa-basi lagi, berikut ini link download program dan source code-nya :

Link : http://www.mediafire.com/?b49hcpoyp23246b
Size : 564.03 KB

Konsep layoutnya sederhana seperti gambar 1 diatas. Pada bagian tengah ditampilkan poin yang dimiliki dan pertanyaan bilangan yang dikalikan. Lalu dibawahnya terdapat 4 buah tombol jawaban yang berbeda nilainya (ya iyalah... ). Tidak seperti program kuis lainnya yang menampilkan huruf A, B, C, atau D disini tidak. Kenapa tidak? Karena belum saya buat hehehe. Jika anda masih kesulitan dalam pembuatan tombol pada program ini silahkan lihat kembali artikel Klik Tombolnya. Untuk penulisan teksnya sendiri (dengan TTF) jika masih mengalami kendala silahkan lihat kembali artikel Kapal Luar Angkasa yang membahas pengaturan library SDL_TTF dan penggunaannya.

Untuk membuat jawabannya dinamis baik dalam hal nilai dan juga penempatannya (A,B,C, atau D) kita perlu sedikit nilai acak, yang terdapat pada kode berikut:


...
   int _x = 1+poin/60+rand()%4+(poin/30),
       _y = 1+poin/60+rand()%4+(poin/30);
 
   jawaban = _x*_y;

   int _z = _x+_y;
   a=jawaban+1+rand()%_z;
   b=jawaban+3+rand()%_z;
   c=jawaban-1-rand()%_z;
   d=jawaban-3-rand()%_z;

   int _start = rand()%4;
   switch(_start){
      case 0: a=jawaban; break;
      case 1: b=jawaban; break;
      case 2: c=jawaban; break;
      case 3: d=jawaban; break;
      default:;
   }
...

Setelah a, b, c, dan d memperoleh nilainya masing-masing yang masih acak dan salah, maka dimulai pemilihan posisi untuk menentukan dimana jawaban akan diletakkan. Untuk mempermudah penggunaan fungsi-fungsi yang biasa digunakan seperti SDL_Surface *memuat(std::string namafile, int r, int g, int b), atau fungsi semacamnya. Maka ada baiknya kita pisahkan file ke dalam file terpisah dalam hal ini file "FungsiUmum.cpp". Sehingga sewaktu-waktu ada program yang membutuhkan fungsi yang sama cukup dengan memanggil FungsiUmum.cpp.

Selanjutnya akan saya bahas lagi sedikit tentang proses pemilihan jawabannya. Program ini masih jauh dari sempurna terlebih hanya melakukan perkalian 2 bilangan, untuk itu kritik dan saran anda sangat dinantikan :D .

- krofz

Next Part II
Update (12-12-21) : Download Link

9 comments:

  1. mz saya tertarik niehh, mau tanya cara bikin game sederhana contohnya tebak hewan, hewan mana yang mempunyai belalai trus jika di klik gajah, maka lanjut ke pertanyaan berikutnya gmn caranya? apa saja software yang dibutuhkan unutk membuat game c++

    jika tidak sempat tolong email saya makasih sebelumya...
    email : aldis.miotryder@gmail.com

    ReplyDelete
  2. Usul anda saya pertimbangkan dahulu. Karena kendala untuk membuat kuis selain angka/bilangan adalah kita harus mempersiapkan soal-soalnya secara manual sebanyak mungkin.

    Tapi pasti jika ada waktu akan saya buatkan berikut tutorialnya... ;)

    ReplyDelete
  3. Weww Usul Saya Dipertimbangkan Hehehe Makasihh.. SO mUchh.. Jadi Bisa Belajar Banyak Niehh Disinii..

    email : aldis.miotryder@gmail.com

    ReplyDelete
  4. Mas, Saya coba Source code yang sudah saya download, Tapi gagal.

    Saya pake' linux ubuntu. SDL-Image & SDL-TTF nya sudah saya setting sedemikian rupa sampai ndak ada error di compiler-nya. Tapi setelah saya jalankan jendela programnya langsung hilang...

    Message di terminal / Command Prompt-nya:

    Process returned 1 (0x1) execution time: 0.363s
    Press ENTER to continue.

    Bisa bantu nggak?

    ReplyDelete
  5. Pastikan file-file yang dibutuhkan program ada dalam direktori yg sama. Seperti folder data (yg berisi beberapa file gambar), dan file pustaka SDL yang dibutuhkan (SDL.dll, SDL_image.dll).

    Semoga membantu .... :)

    ReplyDelete
  6. Oh, ternyata nama image yang asli sama yang dimasukkan di code nya beda. :)

    "Background.png"
    "background.png"

    Makasih

    ReplyDelete
  7. Oh iya mungkin masalah OSmu aja.... kalau di Linux emang 'Case sensitive' .. background sama Background dianggap dua objek yg berbeda nggk kaya Windows... mau BacKGroUnd.. BACKground... pasti jalan... hehehe... :D

    seep dah kalau udah jalan ... ;)

    ReplyDelete
  8. Oke mas, makasih... :)

    ReplyDelete

Maaf jika komentar anda lama terbitnya ^__^, penulis berusaha OL sesering mungkin. Komentar anda adalah semangat blog ini, dan juga semangat para blogger lainnya. You can use XHTML tags: <a href="" rel="link"> </a>, <strong> </strong>, <b> </b>, <em> </em>, <i> </i>.

Spesial character use :
&lt; for <
&gt; for >


Use Pastebin.com for alternative to display your code :) .

 

back to top

back to top