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
 

back to top

back to top