[Intermediate] Ds_stack
+4
Arif_IndoFuture
zebrakelabu
HaNIFU
Kevin Blaze Coolerz
8 posters
Halaman 1 dari 1
[Intermediate] Ds_stack
Ds_stack hampir sama dengan ds_queue, tapi metode yg dipakai ds_stack ialah LIFO (Last In - First Out).
Bisa dibayangkan dengan sebuah tumpukan buku. Semakin kamu menumpuk (push) sebuah buku, maka tumpukannya akan semakin tinggi, dan jika kamu mau mengambil buku paling bawah, maka kmu harus mengambil buku paling atas terlebih dahulu. (ingat LIFO)
Fungsi-fungsi yang disediakan pada ds_stack:
1. ds_stack_create()
new_stack = ds_stack_create()
Membuat ID data struktur baru, dengan nama ID new_stack.
2. ds_stack_destroy(id)
ds_stack_destroy(new_stack)
Menghapus ID dari memory, untuk meghilangkan beban (lakukan jika sdh tidak dibutuhkan ds_stack lgi).
3. ds_stack_clear(id)
ds_stack_clear(new_stack)
Hanya menghapus tumpukan buku (nilai new_stack nya ), tidak menghapus ID nya dari memory.
4. ds_stack_copy(id,source)
ds_stack_copy(new_stack, old_stack)
Meng-copas nilai dari old_stack ke new_stack.
5. ds_stack_size(id)
size = ds_stack_size(new_stack)
Return ada berapa banyak nilai yang sudah dimasukan kedalam new_stack. (ada berapa buah buku dalam 1 tumpukan itu? )
6. ds_stack_empty(id)
if ds_stack_empty(new_stack) {show_message("Gak ada tumpukan buku disini ")}
Cek apakah ID tsb kosong atau gk?
7. ds_stack_push(id,val)
ds_stack_push(new_stack,1)
menambah nilai/value pada new_stack, dengan nilai 1
Artinya nambah 1 buku lgi di tumpukan, dan buku tsb tentu di taruh paling atas (ingat LIFO).
8. ds_stack_pop(id)
ds_stack_pop(new_stack)
Dibaca nilai paling atas, lalu di buang/di hapus.
9. ds_stack_top(id)
ds_stack_top(new_stack)
Dibaca aja nilai paling atasnya, tapi gak di hapus.
10. ds_stack_write(id)
str = ds_stack_write(new_stack)
Menjadikan nilai pada new_stack sebagai string, mungkin untuk di save, untuk suatu saat di load kembali.
11. ds_stack_read(id,str)
ds_stack_read(new_stack,str)
Ini untuk load nya
Ini contoh penggunaan ds_stack, yaitu contoh untuk mereverse time atau membalikan waktu Download ds_stack reverse time.gmk (bukan buatan ku)
Cara pake nya:
tekan tombol kanan & kiri pada keyboard utk bergerak, kalo udah tekan spasi, maka char akan bergerak mundur sesuai dengan gerakan mu yang sebelumnya
Teorinya:
Setiap 4 step (alarm) nilai x pada char di masukan ke dalam stack dengan menggunakan ds_stack_push(), lalu saat tekan spasi, maka nilai terakhir pada stack nya di baca dan dibuang menggunakan ds_stack_pop() dibaca trus sampai stack nya habis.
Bisa dibayangkan dengan sebuah tumpukan buku. Semakin kamu menumpuk (push) sebuah buku, maka tumpukannya akan semakin tinggi, dan jika kamu mau mengambil buku paling bawah, maka kmu harus mengambil buku paling atas terlebih dahulu. (ingat LIFO)
Fungsi-fungsi yang disediakan pada ds_stack:
1. ds_stack_create()
new_stack = ds_stack_create()
Membuat ID data struktur baru, dengan nama ID new_stack.
2. ds_stack_destroy(id)
ds_stack_destroy(new_stack)
Menghapus ID dari memory, untuk meghilangkan beban (lakukan jika sdh tidak dibutuhkan ds_stack lgi).
3. ds_stack_clear(id)
ds_stack_clear(new_stack)
Hanya menghapus tumpukan buku (nilai new_stack nya ), tidak menghapus ID nya dari memory.
4. ds_stack_copy(id,source)
ds_stack_copy(new_stack, old_stack)
Meng-copas nilai dari old_stack ke new_stack.
5. ds_stack_size(id)
size = ds_stack_size(new_stack)
Return ada berapa banyak nilai yang sudah dimasukan kedalam new_stack. (ada berapa buah buku dalam 1 tumpukan itu? )
6. ds_stack_empty(id)
if ds_stack_empty(new_stack) {show_message("Gak ada tumpukan buku disini ")}
Cek apakah ID tsb kosong atau gk?
7. ds_stack_push(id,val)
ds_stack_push(new_stack,1)
menambah nilai/value pada new_stack, dengan nilai 1
Artinya nambah 1 buku lgi di tumpukan, dan buku tsb tentu di taruh paling atas (ingat LIFO).
8. ds_stack_pop(id)
ds_stack_pop(new_stack)
Dibaca nilai paling atas, lalu di buang/di hapus.
9. ds_stack_top(id)
ds_stack_top(new_stack)
Dibaca aja nilai paling atasnya, tapi gak di hapus.
10. ds_stack_write(id)
str = ds_stack_write(new_stack)
Menjadikan nilai pada new_stack sebagai string, mungkin untuk di save, untuk suatu saat di load kembali.
11. ds_stack_read(id,str)
ds_stack_read(new_stack,str)
Ini untuk load nya
Ini contoh penggunaan ds_stack, yaitu contoh untuk mereverse time atau membalikan waktu Download ds_stack reverse time.gmk (bukan buatan ku)
Cara pake nya:
tekan tombol kanan & kiri pada keyboard utk bergerak, kalo udah tekan spasi, maka char akan bergerak mundur sesuai dengan gerakan mu yang sebelumnya
Teorinya:
Setiap 4 step (alarm) nilai x pada char di masukan ke dalam stack dengan menggunakan ds_stack_push(), lalu saat tekan spasi, maka nilai terakhir pada stack nya di baca dan dibuang menggunakan ds_stack_pop() dibaca trus sampai stack nya habis.
Re: [Intermediate] Ds_stack
Nice info, fungsi ds_... banyak yang saya emang belum ngerti...
Siip,
Udah aku donload mau di amati dulu fungsinya...
Siip,
Udah aku donload mau di amati dulu fungsinya...
HaNIFU- Global Moderator
-
Jumlah posting : 689
Points : 858
Join date : 11.04.13
Lokasi : Surakarta
Re: [Intermediate] Ds_stack
@HaNIFU:
hehe, thx
ak tinggal fungsi ds_grid dan ds_maps yg blum di pelajari. tdi baru saja lihat di helpfile tentang ds_maps & kyk ny ak sdikit paham dgn cara kerja ny
seep, silakan di amati
hehe, thx
ak tinggal fungsi ds_grid dan ds_maps yg blum di pelajari. tdi baru saja lihat di helpfile tentang ds_maps & kyk ny ak sdikit paham dgn cara kerja ny
seep, silakan di amati
Re: [Intermediate] Ds_stack
Ya aku pernah coba buat dari example-nya yang ds_map. Saya fungsikan untuk menyimpan posisi benda" yang di room. Tapi udah lupa dan sudah hilang...
Kalau udah tau share lagi ya... it's very helpfull
Kalau udah tau share lagi ya... it's very helpfull
HaNIFU- Global Moderator
-
Jumlah posting : 689
Points : 858
Join date : 11.04.13
Lokasi : Surakarta
Re: [Intermediate] Ds_stack
iy, utk item & keterangan item tsb (menurut help file ny )
ok, pasti ak share kalo ad ilmu lagi
ok, pasti ak share kalo ad ilmu lagi
Re: [Intermediate] Ds_stack
dulu aku pernah punya AI command stack, itu pakai ds_stack. lupa naruh dimana harus cari
jadi intinya musuh tuh udah punya mode default, guard misalnya (dia muter2 jaga daerahnya). begitu dia lihat musuh maka di push lah mode baru ke command stack dia, mode attack misalnya. kemudian diberi flag untuk gagal (misalnya sejauh mana dia boleh pergi dari lokasi awal waktu attack). begitu kondisi tercapai di pop lah mode attack, kemudian di push mode return (dia balik ke lokasi awal). sesampai di lokasi awal di pop lagi mode return, jadi mode default lagi (dia muter2 lagi), dst
bingung ga tuh
Re: [Intermediate] Ds_stack
@arif
itu memang cocok untuk game2 tipe RTS
@kevin
mungkin masih ada di gmc tuh contohnya. search aja AI command stack
itu memang cocok untuk game2 tipe RTS
@kevin
mungkin masih ada di gmc tuh contohnya. search aja AI command stack
Re: [Intermediate] Ds_stack
iy prnah download om
ak kira command stack itu gk pke ds_stack, cz gk ak lihat script ny
ak kira command stack itu gk pke ds_stack, cz gk ak lihat script ny
Re: [Intermediate] Ds_stack
XXXXXXXXXX
(kehapus )
(kehapus )
Terakhir diubah oleh Asuna tanggal Thu 13 Jun 2013, 16:10, total 2 kali diubah
Asuna- Global Moderator
-
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13
Re: [Intermediate] Ds_stack
@asuna
iya terus komputernya hang karena stack overflow
tapi ini mengacu ke sistem kerjanya sih yah, secara kerja sama seperti stack beneran yang ada di bhs mesin komputer. artinya ga bakal bisa stack overflow lah, paling muncul error aja.
iya terus komputernya hang karena stack overflow
tapi ini mengacu ke sistem kerjanya sih yah, secara kerja sama seperti stack beneran yang ada di bhs mesin komputer. artinya ga bakal bisa stack overflow lah, paling muncul error aja.
Re: [Intermediate] Ds_stack
@zebrakelabu
di Java & C# ada stack overflow exception
trus kalo di javascript sama GM kalo terjadi pemanggilan rekursif yg infinite scriptnya akan berhenti total (maybe)
di pemrograman C/C++ mungkin lebih parah errornya
ah sudahlah biarin aja, lupa nulisnya apa tadi
di Java & C# ada stack overflow exception
trus kalo di javascript sama GM kalo terjadi pemanggilan rekursif yg infinite scriptnya akan berhenti total (maybe)
di pemrograman C/C++ mungkin lebih parah errornya
ah sudahlah biarin aja, lupa nulisnya apa tadi
Asuna- Global Moderator
-
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13
Re: [Intermediate] Ds_stack
Buat contoh fungsi Ds stack dalam game dong, seperti Ds Queue yg om zebra kelabu buat
mrtwo- Newbie
-
Jumlah posting : 17
Points : 19
Join date : 05.10.13
Re: [Intermediate] Ds_stack
Wew, bisa buat bikin undo dong
Zihad Rizky Edwin Fikri- GM Beginner
-
Jumlah posting : 409
Points : 431
Join date : 12.05.13
Age : 26
Lokasi : jaktim
Similar topics
» [Intermediate] File Bin
» [Intermediate] Ds_list
» [Intermediate] ds_map
» [Intermediate-advanced] Object_add
» [Intermediate] Drawing Surfaces
» [Intermediate] Ds_list
» [Intermediate] ds_map
» [Intermediate-advanced] Object_add
» [Intermediate] Drawing Surfaces
Halaman 1 dari 1
Permissions in this forum:
Anda tidak dapat menjawab topik