www.gmindo.web.id/forum
Forum ini sudah tidak dipakai lagi. Silakan ke forum baru di www.gmindo.web.id/forum Very Happy

Terima kasih

Join the forum, it's quick and easy

www.gmindo.web.id/forum
Forum ini sudah tidak dipakai lagi. Silakan ke forum baru di www.gmindo.web.id/forum Very Happy

Terima kasih
www.gmindo.web.id/forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

[Beginner-Intermediate] Random number

+2
Kevin Blaze Coolerz
zebrakelabu
6 posters

Go down

[Beginner-Intermediate] Random number Empty [Beginner-Intermediate] Random number

Post by zebrakelabu Mon 11 Mar 2013, 18:54

DISCUSSION MOVED TO NEW FORUM:
http://gmindo.web.id/forum/showthread.php?tid=118


Bilangan acak atau random dibutuhkan sekali dalam pembuatan game, untuk memberikan variasi dst. Dan di GML ada beberapa fungsinya. Let's check some of these random functions out Smile

Fungsi random();

Code:

var i;
i=random(10)

Hasilnya adalah bilangan random antara 0 dan 10 tapi TIDAK PERNAH 10, sehingga range nya adalah antara 0 sampai 9.9999999 tidak terbatas.
Satu lagi adalah hasil aktualnya adalah bilangan real, lengkap dengan beberapa digit dibelakang koma. Untuk benar2 mendapatkan angka bulat atau sering disebut integer kita harus menggunakan fungsi irandom() atau membulatkannya.

Tentang pembulatan, ada 2 fungsi utama yaitu floor() dan ceil()

Code:

i=floor(random(10));
// hasil adalah 0 - 9

sedangkan kalau pake ceil(), atau pembulatan keatas
Code:

i=ceil(random(10));
// hasilnya adalah 0 - 10

Tidak seperti floor() yang konsisten dengan hasil random , tidak demikian dengan ceil(). Fungsi ceil() di code diatas akan mengikutsertakan hasil 10. Jadi hasilnya beda yah, dan kecuali memang maunya begini, menurutku lebih baik kita hanya menggunakan floor() karena lebih konsisten dengan tujuan awal random . ingat fungsi random di contoh tidak pernah menghasilkan angka bulat 10, jadi penggunaan ceil() akan memberikan hasil beda dengan tujuan awal random.


random_get_seed(), random_set_seed(), dan randomize()

Algoritma bilangan acak di GML (dan di semua bahasa pemrograman) menggunakan suatu acuan untuk bisa menghasilkan bilangan yang "kelihatannya" acak. Acuan ini disebut sebagai "seed" atau benih. Nah yang unik adalah bilangan "benih" ini bisa kita ambil dengan menggunakan fungsi random_get_seed(). Dan bila kita menginginkan suatu kondisi acak dengan kondisi yang konsisten antar komputer, kita bisa set benihnya dengan perintah random_set_seed(). Hasilnya adalah suatu kondisi acak yang konsisten antar komputer. Acak tapi konsisten Smile GML men set initial seed yang sama di setiap awal game, gunanya adalah untuk kemudahan proses debugging.

Tapi mungkin bukan ini yang kita inginkan, kita mau bener2 acak tanpa bisa terlacak lagi? Disinilah fungsi randomize() berguna. Taruhlah fungsi randomize() di awal, maka bisa dipastikan fungsi2 random akan memberi hasil yang acak antar komputer.

Aku pernah baca di GMC kalau ada user yang bisa membongkar algoritma bilangan acak GML. Hmmm jadi ngga acak dong? Memang ngga, dan mungkin kondisi true random system memang tidak akan pernah bisa tercapai.

Tanggapan ato tambahan silakan Very Happy


Terakhir diubah oleh zebrakelabu tanggal Fri 16 May 2014, 22:48, total 1 kali diubah
zebrakelabu
zebrakelabu
Admin
Admin

100%
Jumlah posting : 933
Points : 960
Join date : 06.01.13
Lokasi : Jakarta

http://www.project25games.com

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Kevin Blaze Coolerz Mon 11 Mar 2013, 19:08

skedar tambahan untuk floor() dan ceil()

floor = ambil bilangan bulat ke bawah (3.5 jadi 3)
ceil = ambil bilangan bulat ke atas (3.5 jadi 4)

mudah kok menbedakan floor & ceil, ingat aja kalo floor itu kan artinya lantai, & lantai ada di bawah (kcuali loteng Razz)

utk trit ny ak acungi jempol Jempol2
Kevin Blaze Coolerz
Kevin Blaze Coolerz
Admin
Admin

100%
Jumlah posting : 3323
Points : 3795
Join date : 06.01.13
Age : 29
Lokasi : Palembang

http://kevin-blaze-coolerz.blogspot.com/

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Asuna Mon 11 Mar 2013, 20:13

nice share Very Happy

btw aku pengen ngeshare artikel tentang algoritma pembangkit bilangan acak,
[Edit] udah dibikin tritnya: https://gmindo.forumid.net/t294-pseudo-random-number-generator Very Happy

sekedar pengetahuan, algoritma pembangkit bilangan acak yang sering dipakai dalam game dan simulasi disebut Linear Congruential Generator (LCG). itu termasuk algoritma yang paling lemah karena lebih mudah dibobol dibandingkan jenis lain
Asuna
Asuna
Global Moderator
Global Moderator

100%
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by zebrakelabu Tue 12 Mar 2013, 00:56

@asuna
weh mantap sip sip Very Happy

@kevin

iya lupa aku nambahin. fungsi floor() itu pembulatan ke bawah, ceil() itu pembulatan ke atas Very Happy thanks udah nambahin yah
zebrakelabu
zebrakelabu
Admin
Admin

100%
Jumlah posting : 933
Points : 960
Join date : 06.01.13
Lokasi : Jakarta

http://www.project25games.com

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Kevin Blaze Coolerz Tue 12 Mar 2013, 14:18

@zebrakelabu:
ok om, sama" Very Happy
Kevin Blaze Coolerz
Kevin Blaze Coolerz
Admin
Admin

100%
Jumlah posting : 3323
Points : 3795
Join date : 06.01.13
Age : 29
Lokasi : Palembang

http://kevin-blaze-coolerz.blogspot.com/

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty RE:

Post by Zihad Rizky Edwin Fikri Mon 14 Oct 2013, 21:37

Bro, gw kurang ngerti maksudnya random_set_seed, bisa jelasin lagi ga? Kalo bisa kasih contoh dan hasilnya, tapi jangan pake spoiler, biar keliatan lewat hp


Terakhir diubah oleh Zihad Rizky Edwin Fikri tanggal Mon 14 Oct 2013, 21:40, total 1 kali diubah (Reason for editing : tambahin)
Zihad Rizky Edwin Fikri
Zihad Rizky Edwin Fikri
GM Beginner
GM Beginner

55%
Jumlah posting : 409
Points : 431
Join date : 12.05.13
Age : 26
Lokasi : jaktim

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Kevin Blaze Coolerz Mon 14 Oct 2013, 21:48

Create event:
Code:
random_set_seed(12345678)
show_message(random(10))
show_message(random(10))
show_message(random(10))
show_message(random(10))
show_message(random(10))
kalo kmu run > close game > lalu run lgi, maka kmu akan lihat kalo hasil ny akan slalu sama dri yg sebelum ny. krna seed ny msih sama
Kevin Blaze Coolerz
Kevin Blaze Coolerz
Admin
Admin

100%
Jumlah posting : 3323
Points : 3795
Join date : 06.01.13
Age : 29
Lokasi : Palembang

http://kevin-blaze-coolerz.blogspot.com/

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Zihad Rizky Edwin Fikri Mon 14 Oct 2013, 22:07

Oh gitu ternyata, ywd makasih bro
Zihad Rizky Edwin Fikri
Zihad Rizky Edwin Fikri
GM Beginner
GM Beginner

55%
Jumlah posting : 409
Points : 431
Join date : 12.05.13
Age : 26
Lokasi : jaktim

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by adityaandar Mon 03 Feb 2014, 20:16

Kalau mau random dari 7-10 gimana ya?
kalau ceil ama floor kan jadinya 1-10?

adityaandar
Newbie
Newbie

100%
Jumlah posting : 17
Points : 18
Join date : 19.02.13

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Asuna Mon 03 Feb 2014, 20:51

^
random_range(7,10)
Asuna
Asuna
Global Moderator
Global Moderator

100%
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by zebrakelabu Wed 05 Feb 2014, 18:53

atau

7+floor(random(4))
zebrakelabu
zebrakelabu
Admin
Admin

100%
Jumlah posting : 933
Points : 960
Join date : 06.01.13
Lokasi : Jakarta

http://www.project25games.com

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by meliaz99 Wed 05 Feb 2014, 19:11

Wahh. Thanks! Kacau
Baru tau cara pakai random_set_seed(). Very Happy
meliaz99
meliaz99
GM Beginner
GM Beginner

100%
Jumlah posting : 318
Points : 386
Join date : 11.05.13
Age : 25
Lokasi : Batam, Kepri, Indonesia

http://roychanmeliaz.wordpress.com

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Asuna Wed 05 Feb 2014, 20:22

@zebrakelabu
bisa juga irandom_range(7,10) untuk integer, tapi untuk floating point as I said before...
hmm mungkin gara2 pertanyaannya adityaandar agak fuzzy sih, ane kira random bilangan floating point (secara umum) Confused
Asuna
Asuna
Global Moderator
Global Moderator

100%
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13

Kembali Ke Atas Go down

[Beginner-Intermediate] Random number Empty Re: [Beginner-Intermediate] Random number

Post by Sponsored content


Sponsored content


Kembali Ke Atas Go down

Kembali Ke Atas

- Similar topics

 
Permissions in this forum:
Anda tidak dapat menjawab topik