Læringsblokk · Detaljer
Bomberman lys: Rutenettbombe
Denne læringsblokken introduserer sentrale konsepter innen rutenettbasert spillutvikling i Python 2 ved hjelp av frameCraft. Fokuset er på trinn-for-trinn-modellering av spillegrensen, bevegelse, bombelogikk, eksplosjoner og spilltilstander i et forsiktig lite Bomberman-lys-prosjekt.

Prosjektutvikling med KI-støtte
Strukturert programmering med KI-Coding og ProtoTypeFirst
Denne kursen er spesifikt utviklet for lære som ønsker å programmere strukturert med KI-støtte og videreutvikle eksisterende kode.
KI-Coding i prosjekttilstanden
KI-Coding integrerer en kontekstbevisst KI direkte inn i CodeRoom. Den utvider eksisterende kode, forklarer feil, setter målrettede endringer og støtter videreutvikling i den nåværende prosjekttilstanden.
Gjennomsiktig kodeutvikling
Kursen fokuserer på didaktisk innbygget støtte, gjennomsiktige endringer og umiddelbart testbare resultater. Prompter, endringer og versjoner forblir gjennomsiktige for instruksjonelle veiledninger.
ProtoTypeFirst-format
Alle innhold starter med en fungerende prototype som gradvis utvikles ved hjelp av AI-koding, slik at hver utvidelse starter fra et synlig utgangspunkt.
Introduksjon
Følgende utdrag viser innføringen av lesemodulen i forkortet form.
Du starter ikke med et ferdig spill, men med en forberedt byggeplass. Scenen er allerede i gang, og viser tittelen, et enkelt rektangulært spillefelt, en plassholderfigur og en markør. Den virkelige Bomberman-spillet blir kun skapt gjennom dine endringer ved hjelp av Strukturert programmering med AI-koding og ProtoTypeFirst.
Didaktisk klassifisering
Modulen er kompakt klassifisert i forhold til innhold og undervisningspraksis.
Subjektivt mål
Modulen gjør utviklingen av et rasterbasert spill synlig som resultat av små, testbare modelleringsskritt. Sentrale konsepter er raster-pixelskonvertering, spillogikk basert på tilstander, datalistene for spillobjekter og skille mellom startregler og kjørende regler.
Kompetanseutvikling
- Modellering: Rutenettfelt, spillobjekt, bomber og blokker representeres som strukturert data i prosjektet.
- Algoritmisering: Bevegelse, hindring, teller, eksplosjon og seierbetingelser oppstår fra klare regelkontroller.
- Abstraksjon: En hjelpemåte for raster-til-pixelsposisjoner reduserer gjentagelser og gjør koordinatlogikken forståelig.
- Test: Hver utvidelse kan testes og rangert etter effekten på den synlige prototypen.
Lærerens tilleggsmessige verdi
- Den fungerende startprototypen gir en tydelig utgangspunkt for trinnvis utvidelse.
- Oppgavesequensen deler et spill-system inn i håndterbare undermekanismer.
- Utvidelsesoppgaver muliggjør differensiering gjennom fiender, måltilstander, omstart og poeng.
Oppgavesequensen i undervisningsenheten
Oppgavene presenteres i rekkefølge av JSON-en og samles sammen som utviklingssteg for prosjektet.
Gjør rasterlinjer synlige
Det eksisterende spillfeltområdet blir supplert med enkle rasterlinjer. Dette gjør at plassholderfeltet blir et tydelig strukturert spillobjekt uten å bygge regler eller kollisjoner allerede.
Designere spilleren som en Bomberman-figur
Plassholderfiguren utvikles grafisk til en liten Bomberman-lignende spillfigur. Posisjon og logikk forblir uendret, slik at representasjon og oppførsel kan arbeides med separat.
Lagre spillerens rasterposisjon
Egen sceneverdi for kolonne og rad blir skapt for spilleren. Denne datstrukturen forbereder feltforfeltbevegelse senere uten å flytte figuren automatisk enda.
Justere spilleren mot rasterfeltet
Figurens startposisjon beregnes fra gridkolonne, gridrad og feltstørrelse. Dette gjør at spillstykket blir synlig på gridmodellen av spillobjektet for første gang.
Konverter rasterposisjon til pikselposisjon
En hjelpemot funksjon beregner pixelmidten i en gridcelle fra kolonne og rad. Denne sentrale konverteringen brukes deretter for spillerens posisjon og utgjør grunnlaget for videre objekter.
Implementer én-trinn gridbevegelse
Retningsaksjoner endrer lagret rasterposisjon hvert enkelt trinn. Figuren er deretter flyttet ved hjelp av konverteringsfunksjonen, uten veggblokkering eller animasjon ennå.
Fjern bevegelsesblokk
En enkel bevegelsesblokk hindrer at en holdt retningstast kan utløse flere trinn per frame. Et nytt enkelt trinn blir kun mulig etter at tasten er sluppet.
Forbered faste vegger
En liste med faste veggfelt blir opprettet og vist på rutemodellen. Veggene blokkerer ikke bevegelse ennå, men introduseres som separate spillobjekter.
Blokkere bevegelse mot vegger
Bevegelsesregelen sjekker før hvert trinn om målfeltet er i vegglisten. Spilleren kan da kun bevege seg til frie felt.
Vis ødelagte blokker
Bortsett fra faste vegger, legges en liste med ødelagbare blokker til. Disse feltene får sin egen visning, men mangler fremdeles eksplosjons- eller fjerningslogikk.
Sett plass for bomb som dataobjekt
Når en bombe settes, lagres en innføring med spillerens nåværende posisjon. I starten er kun én bombe tillatt per gang; synlighet, teller og eksplosjon følger senere.
Sett plass for bomb bare én gang per tastetrykk
En bommeblokk hindrer at en holdt bombe-tast kan opprette nye innføringer. Plasseringen blir kun igjen tilgjengelig etter å ha sluppet handlingen.
Gjør bomb synlig under kjøring
Eksisterende bombeinnføringer vises som tegn under spill. Oppgaven viser tydelig at dynamiske objekter ikke kan settes opp kun ved scenestart.
Legg til bombeteller
Hver bomb får en temporær teller som minskes med rammetid. Etter utløp merkes den for eksplosjon uten å tegne eksplosjonen enda.
Vis kryss-eksplosjon
Fra en forberedt bomb oppstår et kort kryssformet utbredelsefelt. Fjerning av blokker og skade er fortsatt ekskludert slik at eksplosjonsgeometrien kan vises isolert.
Fjern blokker gjennom eksplosjon
Eksplosjonsfeltene sammenlignes med ødelagte blokker. Bare de påvirkede blokkene fjernes fra listen; faste vegger endres ikke.
Vis poeng for ødelagte blokker
Et poengverdi og en HUD-visning legges til. Poengene øker når en ødelagt blokk forsvinner gjennom eksplosjonen.
Sjekk spiller skade
Spilllogikken sjekker om spillers posisjon er på et eksplosjonsfelt. I så fall sattes en tapstatus og vises en enkel Game Over melding.
Legg til enkle fiender
En fiende legges til som sin egen rutenettfelt og vises i spillfeltet. Den beveger seg ikke enda og forårsaker ingen skade, men utvider spillets objektmodell fra starten.
Legg til nivåmål og vinningsvilkår
Et enkelt mål defineres: Hvis alle fjernbare blokker er fjernet, endres spillstatusen til vunnet. En synlig seiersmelding gjør slutt på nivået gjenkjennelig.
Gjenta ved tast og berøring
En start- eller restartaksjon kobles sammen med tastatur og berøring. Etter en vunnet eller tapt status starter et tastetrykk scenen trygt på nytt.
Kodeeksempel
Fragmentet viser den forberedte tilstandsstruktur og stedet hvor bevegelse, bomber og regler vil legges til trinnvis senere.
| |
Byggeblokken støtter en tydelig undervisningsorganisasjon fordi hver utvidelse er basert på et pågående prosjekt og gir verifiserbare resultater. Differensiering er mulig gjennom ekstra motstandere, måltilstander, poeng eller restartlogikk.
Forespør en demo-tilgang og test byggeblokken i din egen kurskontekst.