Oceni 9 - 10: Slalom v d-MOL-u
Oddelek za motorni promet in gospodarske dejavnosti MOL namerava pripraviti didaktično igro, katere namen bo promocija kolesarjenja v Ljubljani. Hkrati bo igra urila reflekse kolesarjev in tako prispevala k še večji varnosti kolesarjenja v Ljubljani. Kako bo videti, kaže video. MOL je pripravil tudi vse slike in zvoke, ki jih potrebujete; pripeti so k nalogi. Vaša naloga je le še, da sprogramirate igro.
(Ob snemanju videa sem opazil napako v zaznavanju trkov. Seveda se je morala prvič pokazati ravno takrat. Zdaj sem jo najbrž odpravil, vendar se mi ne da še enkrat snemati. :)
Za programiranje uporabite modul PyGame. Ker ni del standardne Python distribucije, ga morate namestiti. Navodila za namestitev so na spletni strani modula. Za začetek si lahko pomagate s primerom na spletni strani modula.
Razlaga posamičnih funkcij knjižnice PyGame seveda ni tema Programiranja 1. Ker gre za oceni 9 in 10, je umestno pričakovati, da bo znal študent sam pogledati dokumentacijo in si pomagati s primeri. :) To tudi ne bi smelo biti pretežko; vaše glavno delo bo vseeno programiranje. Če si ne boš brez potrebe zapletal(a) življenja, bi moralo biti celotne kode manj kot 100 vrstic.
Pravzaprav je to naloga takšne narave, da bo čisto primerno, če smiselno uporabljate Copilota ali podobno inteligentno orodje. Ta vam bo dodajal stvari, ki bi jih morali iskati po Googlu, programirali pa boste še vedno sami.
Ocena 9
Pozor: za oceno 9 oz. 10 je potrebno rešiti tudi vse dele druge domače naloge, tiste za ocene 6-9.
Izdelajte igro tako, da bo
- na dnu okna velikosti 800x600 prikazan kolesar, ki ga bo igralec lahko premikal s tipkama levo in desno,
- se bodo z zgornjega roba okna proti kolesarju spuščale ovire in grbi. Koordinate x ovire je naključno število; ovire oz. grb se izbirajo naključno. Gostota ovir je določena tako, da se
- prva ovira pokaže na začetku igre;
- po tem, ko pokažete oviro, določite, po koliko krogih osnovne zanke se pokaže naslednja ovira. To število naj bo naključno izbrano med 30 in 150.
- Ovire se pomikajo s hitrostjo 1 točke na krog, pri čemer je trajanje kroga
clock.tick(480)
. Ko ovira doseže dno okna, se izbriše. - Med igro se v neskončni zanki ponavlja zoprni zvok (arcade.mp3), ki ga slišite v videu.
Ocena 10
Dopolnite igro, da bo videti tako kot v videu.
- Na vrhu zaslona je v na levi strani, centrirano v sredini in na desni strani izpisano število točk, nivo in število življenj.
- Kolesar ima v začetku tri življenja. Ob vsakem trku v oviro (ovire so vse slike, razen kolesarja in grba) izgubi eno življenje. Ko izgubi zadnje, se igra ustavi.
- Kolesar ima v začetku 0 točk. Vsakič, ko pobere grb, dobi 1 točko.
- Po vsakih pridobljenih 5 točkah, kolesar napreduje na naslednji nivo.
- Gostota ovir ni več naključno število med 30 in 150 temveč med 30 in 160 - 10 * nivo. Če je nivo, recimo, 4, je gostota ovir med 30 in 120. Od nivoja 13 naprej je gostota ovir 30.
- Hitrost ovir ni več 1 točko na krog zanke, temveč 1 + nivo / 10 točk na krog zanke. Če je nivo, recimo, 4, je hitrost ovir 1.4 točke na krog zanke.
- Ob trku v oviro se oglasi zvok explosion.mp3, ob pobiranju grba pa jump.mp3. Pri tem se ne prekine zvok, ki teče med igro. (Uporabljaj
pygame.mixer
in predvajaj zvoke na različnih kanalih.)
Datoteke
- 10. januar 2024, 22:54