mengacak kartu dengan algoritma Fisher-Yates. Kalo kita tulis ke flash
kira2 seperti ini:
1 | var arrayKartu = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]; |
2 | for(var i=0;i<arrayKartu.length;i++){ |
3 | var ran = random(arrayKartu.length); |
4 | var temp = arrayKartu[i]; |
5 | arrayKartu[i] = arrayKartu[ran]; |
6 | arrayKartu[ran] = temp; |
Nah, dari sini akan kita buat implementasinya pada flash.
- Pertama-tama kita membuat sebuah dokumen flash dengan ActionScript 3.0
- Langkah awal adalah menggambar kartu-kartu seperti Ace, King, Queen,
dan lainnya. Kartu As (Ace) kita letakkan pada awal frame, karena kita
membuat 13 frame, maka A menempati frame 1, kartu 2 menempati frame 2,
kartu J menempati frame 11, dan seterusnya.
- Untuk itu, kita harus membuat sebuah kartu terlebih dahulu seperti bentuk berikut :
kartu
- Pastikan dalam keadaan terpilih, klik kanan kartu tersebut dan ubah menjadi MovieClip. Pastikan Export for ActionScript terpilih dan ketik nama class-nya menjadi Kartu.
Convert to Movieclip
- Sekarang MovieClip kartu sudah jadi, klik 2 kali kartu tersebut dan
kita masuk ke dalam movieclip tersebut. Klik kanan pada frame 13 dan
pilih Insert Frame.
Insert Frame
- Sekarang tambahkan sebuah layer baru, layer ini digunakan untuk
tulisan A, 1, 2, J, Q, K. Sehingga layer tulisan ini berada di atas
Layer 1.
- Pilih frame 1 pada layer 2, kemudian klik kanan dan pilih Convert to Keyframe.
Convert to Keyframe
- Sekarang kita isi satu persatu frame 2 yang masih kosong dengan label A, 1, 2, dst..
Kartu Jadi
- Oke, sudah jadi, tapi hanya kartunya saja. Kita kembali pada screen
utama dengan klik 2 kali pada area kosong. Kemudian hapus semua
movieclip pada stage, sehingga menjadi kosong.
- Sekarang buat sebuah tombol sederhana dan berikan nama tombol_btnsebagai instance name-nya.
tombol_btn
- Sekarang kita beralih ke scripting, klik pada frame 1 layer 1, tekan F9. ketik script berikut :
01 | import flash.events.MouseEvent; |
04 | tombol_btn.addEventListener(MouseEvent.CLICK,onClick); |
05 | function onClick(e:MouseEvent) |
08 | var arrayKartu:Array = [1,2,3,4,5,6,7,8,9,10,11,12,13]; |
11 | for(var i=0;i<arrayKartu.length;i++){ |
12 | var ran = Math.floor(Math.random()*arrayKartu.length); |
13 | var temp = arrayKartu[i]; |
14 | arrayKartu[i] = arrayKartu[ran]; |
15 | arrayKartu[ran] = temp; |
18 | for (i=0; i<arrayKartu.length; i++){ |
19 | var kartu = new Kartu(); |
20 | kartu.gotoAndStop(arrayKartu[i]); |
25 | kartu.x = (i-6)*90+50; |
28 | kartu.x = (i-12)*90+50; |
- Sekarang kita test movie
Algoritma ini bekerja dengan cara menukar sebuah kartu dengan kartu
acak lainnya, dan penukaran ini dilakukan sebanyak jumlah kartu.
Tidak ada komentar:
Posting Komentar