Algoritma dari Insaniquarium


Buset..
Menyambung postingan saya tentang Insaniquarium sebelumnya, kali ini saya ingin sharing tentang Algoritma bagaimana caranya untuk menyelesaikan permainan ini. Tentunya, bagi para gamers yang pernah main Insaniquarium, pasti punya satu kendala : WAKTU. Yep, para pemain harus meluangkan waktunya cukup lama untuk menamatkan Insaniquarium. Jujur, saya sendiri dari dulu belum pernah tamat main game ini karena level-level tengah justru butuh kesabaran karena lamaaaaaaa….. banget tamatnya. Sebabnya, ya karena harga telur yang tinggi banget, nggak sebanding dengan penghasilan dari ikan-ikan yang rata-rata dibawah 100.


Setelah saya mainkan lagi akhir-akhir ini (dan karena ada FP Alpro :p), ternyata ada suatu hal yang menarik. Disini, pada game Insaniquarium, kita harus mengatur strategi dalam segala aspek permainan untuk menyelesaikan game tersebut.


Daridulu emang gitu kali, yog.-.-


Hahahaha, yang ini beda. Disini, ada suatu taktik, dimana kita harus menentukan skala prioritas dalam permainan. Nah, setelah saya main selama berjam-jam (Cuma buat nyatet apa aja yang perlu diatur, namatinnya lain kali aja :p) ternyata saya menemukan suatu algoritma yang bisa digunakan untuk menyelesaikan permainan ini. Intinya, kita diberi pilihan antara kualitas dan kuantitas.


Jadi, …


Permainan ini seenarnya memberi kita pilihan, mau main kualitas apa kuantitas. Contoh simpelnya kuantitas adalah, beli ikan sebanyak-banyaknya, dan kita bakal dapet koin emas yang banyak juga. Tapi, gimana kalo aquariummu jadi penuh sama ikan dan muncul hujan koin yang nggak bisa diambil semua dan akhirnya ilang? Contoh simpelnya kualitas adalah beli ikan carnivore. Dengan beli ikan carnivore, kita bisa dapet diamond yang bernilai 200, hamper 10x lipatnya koin emas. Tapi, kapan kita bisa menang, kalo tiap carnivorenya laper kita harus beli ikan senilai 100, padahal penghasilan baru 200?


Nah, kali ini saya menampilkan pseudocode dari algoritma Insaniquarium yang saya buat.
class main
if telur<= 3
then
if ikan := lapar
then
do klik panel ikan
call memberi_makan_ikan
else if uang >= 100 && ikan = ikansedang
then
klik sembarang di akuarium

call beli_ikan
else if if uang>=200&& ikan = ikanbesar
then
klik panel kualitas
call upgrade_kualitas
else if uang>= 300&& ikan := ikanbesar
then klik panel kuantitas
call upgrade_kuantitas
else if alien := while
then call lawan_alien
else if uang>= 1000 && ikan = ikanbesar
then
klik panel senjata
call beli_senjata
else if uang>= hargatelur
then
klik panel telur
call beli_telur
else
endif
else
END

class memberi_makan_ikan
begin
while ikanlapar := true && warnaIkan := pale
do
berimakan = berimakan + 1
if berimakan := 3
then
ikan = ikansedang
if berimakan := 4
then
ikansedang = ikanbesar
endif
endif

class beli_ikan
begin
while jmlikan>=0
do
uang = uang – 100
ikan = ikan + 1
jmlikan ++
end

class upgrade_kualitas
begin
when jmlquality >=0
do
quality = quality + 1
uang = uang – 200
berimakan = berimakan * (3/2)
jmlquality ++
end

call upgrade_kuantitas
begin
while jmlquanitity >=0
do
quantity = quantity + 1
uang = uang – 300
jmlquantity++
end

class lawan_alien
while alien := true
do
klik = klik + 1
if klik = health
alien := false
else
return do

class beli_senjata

begin
while weapon >=0
do
klik = klik * (3/2)
uang = uang – 1000
weapon++
end

class beli_telur
begin
for jmltelur = 1 to 4do
telur = telur + 1
uang = uang – hargatelur
hargatelur = hargatelur * 2
jmltelur++
end
Dari pseudocode diatas, saya menyeimbangkan antara kualitas dan kuantitas. Penjelasannya adalah sebagai berikut :

PEMBERIAN MAKAN IKAN

Disini, seperti game virtual pet kebanyakan, kita harus memberi makan peliharaan agar mau menghasilkan uang. Jadi, SELAMA ikan lapar dan berwarna pucat, kita beri makan 1. APABILA kita sudah memberi makan ikan sebanyak 3x, maka ikan akan berubah menjadi ikan sedang. Sedangkan, APABILA ikan sedang diberi makan 4x, maka ikan akan berubah menjadi ikan besar.

PEMBELIAN IKAN

Yang pertama, kita tidak bisa membeli ikan APABILA salah satu ikan kita tidak menjadi ikan sedang. Jadi, proses ini dimulai APABILA ada ikan sedang dalam aquarium dan uang kita lebih dari 100. Kita akan beli ikan sehingga jumlah ikan bertambah 1 dan uang berkurang menjadi 100. Proses ini kita ULANG terus sampai... ya, terserah pemain.
Tapi, semakin banyak ikan justru semakin buruk. Banyaknya ikan ini justru mengganggu konsentrasi karena fokus kita tertuju pada ikan-ikan yang memenuhi aquarium, dan hal-hal lain seperti upgrade makanan, pembelian telur, sampai munculnya alien akan terabaikan. Tapi kita juga bisa sediakan ikan untuk kebutuhan lain, yang dari tiap level berbeda.

UPGRADE MAKANAN

Disini, kita beli semua upgrade kualitas makanan sampai maksimum. Jadi, APABILA uang lebih dari 200 dan ikan sudah menjadi ikansedang, maka kita akan beli upgrade kualitas (quality) sejumlah 1, dan uang berkurang 300. Proses ini akan kita ULANG sampai quality berjumlah 3 (jmlquality), dan akan bertambah pada tiap perulangannya.

Selanjutnya adalah pembelian upgrade kuantitas makanan.  Jadi, APABILA uang lebih dari 300 dan ikan sudah menjadi ikansedang, maka kita akan beli upgrade kuantitas (quantity) sejumlah 1, dan uang berkurang 300. Proses ini akan kita ULANG sampai terserah user, maksimal 10 dan quantity berjumlah 5 (jmlquantity), dan akan bertambah pada tiap perulangannya. Tapi, kita tidak beli semua upgrade, kita hanya upgrade kuantitas makanan sampai 4.

Kenapa beda? Karena kualitas makanan menentukan tumbuh kembangnya ikan (halah). Semakin baik kualitasnya, maka ikan akan makin cepat berkembang dalam beberapa kali makan saja. Ketika kita beli upgrade kualitas makanan, maka variabel berimakan akan bertambah menjadi 3/2 kali lipatnya, sehingga total berimakan akan bertambah. Tentunya, ini akan berpengaruh besar dalam waktu penyelesaian game sehingga upgrade ini harus dibeli semua.

Sedangkan kuantitas makanan tidak perlu banyak-banyak, karena kuantitas makanan hanya berpengaruh ketika jumlah ikan luar biasa banyaknya. Sedangkan, apabila ikan hanya sekitar 8 – 12, kita hanya perlu upgrade 4 makanan. Kenapa? Karena kita nggak mungkin beli ikan secara bersamaan, sehingga waktu tiap ikan untuk lapar berbeda-beda. Jadi, kita nggak pelu ngasih makan sesuai dengan jumlah ikan, kita hanya cukup memberi makan ikan yang sedang lapar, dan dalam satu waktu semua ikan menjadi lapar itu kemungkinannya kecil.

ALIEN

Bagian ini yang paling keren dari Insaniquarium. Sewaktu-waktu, bisa muncul alien dalam aquarium yang memakan ikan kita. Coba bayangin, lagi lucu-lucunya ikan renang, terus ngeluarin uang, eh ada alien yang makan ikan itu? Cara melawannya gampang, yaitu SELAMA alien ada, klik aliennya. APABILA jumlah klik kita sama dengan health dari alien tersebut, maka proses alien ketika muncul akan berhenti sehingga alien hilang. Apabila tidak, maka kita harus klik terus sampai jumlah klik sama dengan health.

UPGRADE SENJATA

Sebenarnya, kita bisa membeli upgrade senjata untuk menambah jumlah klik sehingga proses klik = health menjadi lebih cepat dan alien bisa hilang. Jadi, APABILA uang lebih dari 1000 dan ikan sudah menjadi ikanbesar, kita lakukan proses pembelian. KETIKA uang kita >= 1000 dan salah satu ikan sudah besar, maka uang akan berkurang 1000, tapi jumlah klik kita akan bertambah menjadi 3/2 kalinya.

Tetapi, upgrade senjata kurang penting dalam permainan ini (menurut saya). Selama kemampuan klik pada jari kita sampai 4klik/detik (-___-), saya rasa sudah cukup untuk menghabisi alien. Untuk itu, disini saya menerapkan suatu syarat untuk pembelian senjata, yaitu ketika ikan di aquarium ada 8 DAN quality makanan kita sudah 3 DAN quantity makanan kita sudah 4 DAN kita sudah beli telur 2x. Disini senjata berfungsi sebagai mempertahankan ikan dari serangan alien. Tapi ingat, pembelian senjata ini OPTIONAL tergantung kemampuan klik masing-masing orang.

PEMBELIAN TELUR

Bagian inilah yang paling penting dari tiap level. Karena apabila telur sudah 3x diupgrade, maka permainan selesai dan kita menang. Andai sesimpel itu, pasti permainan ini udah tamat dengan cepat, tanpa harus emosi dunia tiap kali main. Yep, masalah terbesar dari permainan ini adalah harga telur yang paling mahal dibanding upgrade lainnya, dan itu harus dilakukan sebanyak 3x. Mending kalo harganya sama, lha ini harga telurnya bakalan meningkat jadi 2x lipatnya tiap kita upgrade. Whew, that’s why game ini butuh waktu yang laaaaaaaaama.
Algoritmanya sih simpel. APABILA uang kita sudah sama dengan harga telur, maka kita lakukan pembelian telur. Jadi, UNTUK jumlahtelur = 1, kita lakukan upgrade telur 1x, dan uang berkurang sesuai dengan harga telurnya pada level tersebut. Setelah kita upgrade, harga telur akan meningkat 2x lipatnya untuk jumlahtelur berikutnya.

==============================================================================
Pseudocode diatas adalah pseudocode secara umum. Seperti yang sudah saya bilang, algoritma ini diluar upgrade yang selalu berbeda tiap levelnya , pet yang banyak dengan fungsi yang berbeda-beda, dan jenis alien yang cara melawannya beda juga. Sedih sih, tapi itulah serunya, sehingga game ini nggak boring.

Sekian dulu deh algoritma dari saya. Doain ya biar dapet nilai bagus buat FP ini. Hahahahaha XD



Regards,

YoghaDJ