ITI0140 2014 Bomberman

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Bombermani turniir

Eesmärk: Koodida bomberman, mis toimib põhimõttel "There can be only one!", käib laual ringi, otsib teisi tegelasi ja üritab neist lahti saada.

Selleks:

1) implementeerida Bomberman klassi järglane Bomberman123456, kus 123456 on tudengi matrikkel.

2) tekitada loodud klassis meetod bombermanIdentificationNumber, mis tagastaks matrikli ja tudengi nime, detailsemat kirjeldust vaata koodis.

3) tekitada loodud klassis meetod action, milles toimub järgmise käigu arvutamine, detailset sisendi ja väljundi kirjeldust vaata koodis.

4) saata oma valmis lahendus hiljemalt kolmapäeva õhtuks (17.12) kursuse meiliaadressile.


Üritame tekitada saadetud lahendustest turniiri ja vaatame, kes võidab.


Simulaator:

ver. 0.3: Bomberman_v0_3.py

ver. 0.4: Bomberman_v0_4.py

ver. 0.5: Bomberman_v0_5.py

NB! Jälgige, et kasutaksite simulaatori viimast versiooni. Seal võivad esineda muudatused, mis vajavad teie lahenduse täiendamist.



Dokumentatsiooni tasub lisaks vaadata koodist. Olemas on kolm implementatsiooni:

1) PassiveBomberman - ei tee midagi

2) InteractiveBomberman - küsib kasutajalt järgmist käiku

3) SuicideBomberman - katkine lahendus, mis näitab, kuidas toimitakse lahendusega, mis käigu arvutamisel katki läheb.

KKK

Kui on kaks pommi kõrvuti ning üks lõhkeb, kas siis lõhkeb ka teine pomm seal kõrval?

Jah.

Kui üks mängijatest soovib ruudule pommi panna ning teine soovib samal ajal sinna liikuda, kas siis kasutatakse ka randomi?

Jah. Mängijate käigud lahendatakse juhuslikus järjekorras. Kes jõuab juhuslikult ette, saab käigu tehtud.

Kas pommi panemisel mängija seisab ühe käigu?

Jah. Pommi panemine ongi käik.

Kas võitlus toimub 1vs1 või on platsil rohkem mängijaid?

Vaatame. Põhimõtteliselt pole piirangut mängijate arvule (või noh, tähestik on). Nii kaugele pole mõelnud, et 2vs2 teha turniiri (aka teamwork).

Mis väärtused saab pommi delayks panna?

Jälgige ja kasutage simulaatori Constants klassi väärtusi.

Kui pomm jõuab 0i kas kõigepealt lõhkeb pomm või jõuab mängija veel ühe käigu enne teha?

Kõigepealt kärab pauk ära, siis on alles käigud. St, kui laual on 0 ja mängija on selle lõhkeulatuses, siis on mängija kutu-piilu. Kui laual on 1 ja mängija on selle lõhkeulatuses, siis jõuab ühe käigu veel ära teha. Arvestades, et pommid lõhatakse enne mängija käike, siis 0-i ei peaks mängijad üldse nägema.

Kui suure mänguväljakuga peaks arvestama?

Arvestada võib väljakuga, mis ei ole suurem kui 20x20 ruutu.

Kui palju on käigu tegemiseks aega?

Käigu peaks ära tegema kiiremini kui 1 sekund. Kui action() funktsioon ei returni selleks ajaks, siis paremal juhul jäävad järgmised üle aja läinud käigud vahele (mõõdetakse aeg palju käigu tegemiseks tegelikult kulus). Halvemal juhul ei arvestata üldse tulemust kui aeg üle läheb (automaatne "pass").