Modul · Detalj

Rumdrager: Forsvar mot formasjon

Denne modulen leder fra et lite, gåbart spillmodul til et strukturert Space-Invaders-prosjekt. Fokuset er på trinnvis bygging av kontroll, fiendtlig data, trefflogikk, score, livssystem, bølgestruktur og restart.

Tid 90 minutter
Format AI-koding
Teknologi frameCraft
Online-testing Demo
Forhåndsvisning: Rumdrager: Forsvar mot formasjon

BuildFromZero med KI-Coding

Strukturert kodeutvikling fra en liten startbasis

Denne modulen bruker KI-Coding som kontekstbevisst støtte for videre utvikling av et eksisterende prosjektstatus. Startpunktet er ikke et ferdig spill, men et minimalt, gåbart spillmodul med romskip, formasjonsmerking, statusvise og forberedte input.

Oppgavene leder trinnvis fra visuelle forbedringer over kontroll og sceneverdier til skuddlogikk, fiendtlige formasjon, kollisjoner, poeng, liv, bølger og restart. Dette gjør programmeringsprosessen synlig som en forståelig sekvens av små endringer som kan testes og profesjonelt kategoriseres.

Denne strukturen støtter gjennomsiktig arbeid med KI-genererte endringer i undervisning: prompter, kodejusteringer og versjoner beholdes koblet til konkrete undermål. Fokuset er på forståelig kodeutvikling, målrettet utvidelser og direkte verifiserbare mellomresultater.

Didaktisk klassifisering

Modulen er kompakt integrert i fagstoffet og undervisningspraksisen.

Subjektiv målsetting

I sentrum står byggingen av et enkelt 2D-spill fra tydelig skiltede kodekomponenter: scene, figurer, input, regler og tilstand. Den profesjonelle oppnåelsen består i ikke å overta spillmekanikk som et fullstendig produkt, men steg for steg modellere og implementere dem gjennom datastrukturer, tilstandsverdier og gjentatte regler.

Kompetanseutvikling

  • Strukturering: Prosjekt-koden er delt inn i bygging, hjelpefunksjoner, scene-verdier og spillregler.
  • Modellering: Fiender, skudd, poeng, liv og bølger blir framstilt som data og tilstander.
  • Algoritmisk tenkning: Bevegelse, grensekontroll, kollisjon og tilstandsbytte implementeres som regelbaserte prosesser.
  • Feilsøking og iterasjon: Hver utvidelse er så liten at den kan umiddelbart kontrolleres og målrettet korrigeres.

Lærerens tilleggsverdi

  • Modulen gir en tydelig fremdrift fra visuell orientering til fullstendige spilltilstander.
  • Deling inn i mindre arbeidssteg gjør resultat sikring og mellomromsrefleksjon lettere.
  • Utvidelser som hastighet, bølger eller restart tillater differensiering innen samme prosjekt-kontekst.

Strømningen i undervisningsenheten

Oppgavene presenteres i rekkefølge fra JSON-en og er innholdsmessig komprimert.

1

Gjør spilfeltet mer leselig

Startscenen blir utvidet med en synlig forsvarslinje ved nederste kant av spilfeltet. Dette gir spillerområdet en tydelig romlig orientering uten å endre noen spillregler ennå.

2

Forbedre skuten som spillerfigur

Den eksisterende forsvarsfiguren blir visuelt gjort mer distinkt. Endringen er begrenset til representasjonen, og skiller dermed designet bevisst fra kontroll og spilllogikk.

3

Forbered venstre-høyrebevegelse

De forberedte inputene kobles første gang sammen med en virkelig horisontal bevegelse. I tillegg begrenses posisjonen slik at skuten holder seg innenfor vinduet.

4

Bevegelseshastighet som sceneverdi

Den faste bevegelsesnummeret erstattes av en sceneverdi. Dette gjør det synlig hvordan spillparametre kan frigjøres fra logikk og justeres senere lettere.

5

Konverter Baustellenregel til spillregel

Den tidligere statusregelen blir rensa slik at den ikke lenger permanent overrasker meldinger. Den eksisterende bevegelsen beholdes, og regelen stabiliseres som en plass for videre spilllogikk.

6

Forbered skytefigur

En enkelt skytefigur plasseres og initialiseres utenfor det synlige vinduet. Dette skaper strukturen for senere skyting uten å bygge utløser- eller flylogikk allerede.

7

Utløst skytestart

Et merke holder styr på om skyteknappen allerede er trykket. Dette forbereder slik at et tastetrykk kun utløser en enkelt handling senere, og ikke blir behandlet igjen i hver frame.

8

Utløs skudd

Den forberedte skytingen starter ved nytt anerkjent skyteaksjon på posisjonen til romskipet. Den fortsetter å bruke kun ett skytefigur, slik at ressurser og tilstand blir tydelig kontrollert.

9

Flytt skudd oppover

Et aktivt skudd flytter seg oppover og resettes når det forlater spillfeltet. Dette implementerer en enkel livssyklus for et spillobjekt.

10

Planer fiendtlige data som liste

Fiendtlige former er først forberedt som en liste med navn og posisjoner. Ingen fiendtlige figurer er opprettet enda, slik at skillen mellom datamodell og presentasjon blir tydelig.

11

Vis fiendtlige former

Synlige fiendtlige figurer genereres fra den forberedte startdata. Navn, posisjoner og merker tas konsistent i bruk slik at senere regler kan tilgå formasjonen.

12

Sett aktiv status på fiender

En separat liste holder styr på hvilke fiender som er aktive nå, og skiller dem fra alle opprette fiender.

13

Fullfør hit-struktur

Et kollisjonsrespons mellom et skudd og en fiende blir lagt til. Et gyldig treff fjerner fienden fra aktivlisten, flytter den ut av synet, og resetter skuddet.

14

Score poeng

Score økes med nøyaktig ett poeng ved et gyldig treff. Beregningen beholdes adskilt fra visningen for å holde dataendringer og presentasjon adskilt.

15

Vis score i HUD

Poengene vises gjennom et UI-element og kobles til scenens verdi, for å etablere koplingen mellom intern tilstand og skjermtilbakemelding.

16

Flytt fiender langsomt

Aktive fiender beveger seg langsomt i sidevis retning. Bevegelsen bruker egne sceneverdier for retning og tempo, og er begrenset til de nå aktive fiendene.

17

Kantforandring for formasjonen

Når formasjonen når kanten av spilfeltet, endres retningen og beveger seg nedover. Kontrollen er satt opp slik at retningsskifte ikke utløses flere ganger i samme rammes.

18

Nullstill formasjon sikker

En hjelpemåte nullstiller alle fiender til deres startposisjoner og gjenoppretter listen over aktive fiender. Funksjonen skaper ikke nye figurer og støtter fremtidig bølge- og restartlogikk.

19

Introduser liv og fare

Hvis aktive fiender kommer for dypt inn i spillet, trekkes et liv fra og formasjonen nullstilles. Firingssituasjonen blir også ryddet opp slik at hver fare situasjon kan håndteres tydelig.

20

Vis liv i HUD

De resterende liv er synlige som et separat HUD-verdi. Visningen plasseres adskilt fra tittelen og poengene, slik at ulike spillinformasjoner forblir skillebare.

21

Start ny bølge

Når alle fiender er slått ned, økes bølgen og formasjonen forberedes på nytt ved å bruke nullstillingsfunksjonen. Poeng og liv beholdes, og skaper en kontinuerlig spilprogresjon.

22

Spill over uten restart

Når livet er uttømt, sattes et spill-over tilstand. Vanlige spillkomponenter som bevegelse, skyting, fiendens bevegelse og nye bølger fortsetter ikke i denne tilstanden.

23

Gjenstart med knapp og berøring

Etter Game Over legges en ublokkert restartaksjon til. Poeng, liv, bølge, spillerposisjon, skyting og formasjon resettes konsistent til et starttilstand.

Kodesnutt

Utklippet viser skille mellom scene-verdier, tilgangshjelpere og gjentatte regler som strukturen i modulen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Zugriff:
    @staticmethod
    def figur(ctx, name):
        return ctx.E(name)
    @staticmethod
    def wert(ctx, name, standard=None):
        return ctx.vars.get(name, standard)
    @staticmethod
    def aktion_aktiv(ctx, name):
        return ctx.down(name)
SZENE('hauptszene', punkte=0, leben=3,
      status='Byggeplass: klar for utvidelse',
      gegner_namen=[], schuss_aktiv=False, welle=1)
def baustellen_regel(ctx):
    spieler = Zugriff.figur(ctx, 'verteidiger')
    if spieler is None:
        return
    if Zugriff.aktion_aktiv(ctx, 'links') or Zugriff.aktion_aktiv(ctx, 'rechts'):
        ctx.vars['status'] = 'Innslag registrert: Bevegelse utvidet.'
Modulen kobler sammen spillmodellering med trinnvis implementasjon og gjør tilstander, regler og tilbakemeldinger spårbar.

Den klare sekvensen av oppgaver støtter opplæringsorganisering, mellomliggende sikkerhet og utvikling av et komplett spillkurs fra små kodeendringer. Utvidelser som tempo, bølger eller restart tillater fleksibel tilpasning til ulike læringsevner.

Forespør en demo-tilgang og test modulen i egen kurskontekst.