Lärblock · Detalj

Bomberman ljus: Grid Bomb

Detta lärblock introducerar centrala koncept inom rutnätbaserad spelutveckling i Python 2 med hjälp av frameCraft. Fokus ligger på steg-för-steg-modellering av spelet, rörelse, bomblogik, explosioner och spelstater i ett avsiktligt litet Bomberman-ljus-projekt.

Tid 90 minuter
Format AI-kodning
Teknologi frameCraft
Uppgifter 21
Förhandsvisning: Bomberman ljus: Grid Bomb

Projektutveckling med KI-stöd

Strukturerad programmering med KI-Coding och ProtoTypeFirst

Detta kurser har utvecklats specifikt för elever som vill programmera strukturerat med KI-stöd och vidareutveckla befintlig kod.

KI-Coding i projektets tillstånd

KI-Coding integrerar ett kontextmedvetet AI direkt i CodeRoom. Det utvidgar befintlig kod, förklarar fel, sätter målriktade ändringar och stödjer vidareutveckling i det aktuella projektets tillstånd.

Genomskinlig kodutveckling

Kursen fokuserar på didaktiskt inbyggt stöd, genomskinliga ändringar och omedelbart testbara resultat. Promptar, ändringar och versioner återfinns genomskinligt för instruktionsstöd.

ProtoTypeFirst-format

Allt innehåll börjar med ett fungerande prototyp som gradvis utvecklas med hjälp av AI-kodning, så att varje tillägg startar från en synlig grund.

Introduktion

Följande urval visar inmatningen i lektionens modul i förenklad form.

Du börjar inte med ett färdigt spel, utan med en förberedd byggsituation. Scenen är redan i gång och visar en titel, ett enkelt rektangulärt spelplan, en platsmarkörfigur och en markör. Det faktiska Bomberman-spel som skapas är endast genom dina ändringar med hjälp av Strukturerad programmering med AI-kodning och ProtoTypeFirst.

Didaktisk klassificering

Modulen är kompakt klassificerad i termer av innehåll och undervisningspraxis.

Subjektivt mål

Modulen gör utvecklingen av ett rasterbaserat spel synligt som ett resultat av små, testbara modellsteg. Centrala begrepp är raster-pixelkonvertering, spellogik baserad på tillstånd, datalistor för spelobjekt och separationen mellan startregler och körsätt-regler.

Kompetensutveckling

  • Modellering: Rutmönster, spelfigurer, bomber och block representeras som strukturerad data i projektet.
  • Algoritmisering: Rörelse, blockerande, räknare, explosion och segringsvillkor uppstår genom tydliga regelkontroller.
  • Abstraktion: En hjälps funktion för raster-till-pixelpositioner minskar upprepningar och gör koordinatlogik förståelig.
  • Test: Varje tillägg kan kontrolleras och rangordnas efter dess effekt på den synliga prototypen.

Lärarens tilläggsvärde

  • Den fungerande startprototypen ger en tydlig utgångspunkt för stegvisa utökningar.
  • Uppläggningen av uppgifterna delar upp ett spel-system i hanterbara undermekanismer.
  • Uppgiftsutökningar möjliggör differentiering genom fiender, målstater, omstart och poäng.

Uppläggning av lektionens enhet

Uppgifterna presenteras i ordningen i JSON och sammanfattas som utvecklingssteg för projektet.

1

Gör rasterlinjer synliga

Det befintliga spelplanområdet kompletteras med enkla rasterlinjer. Det gör att platsen blir tydligt strukturerad utan att man redan bygger in regler eller kollisioner.

2

Designa spelaren som en Bomberman-figur

Den platsbaserade figuren utvecklas grafiskt till en liten Bomberman-lignande spelfigur. Position och logik förblir oförändrade, så att representation och beteende kan bearbetas separat.

3

Spara spelarens rasterposition

Egen scenvärde för kolumn och rad skapas för spelaren. Denna datstrukturen förbereder senare fältvis rörelse utan att automatiskt flyttas figuren ännu.

4

Justera spelaren med rasterplanet

Figurernas startposition beräknas från rutnätets kolumn, rad och fältstorlek. Det gör att spelet blir synligt på rutnätet för första gången.

5

Konvertera rasterposition till pixelposition

En hjälpfunktion beräknar pixelcentrum i ett rutnät från kolumn och rad. Denna centrala konvertering används sedan för spelarens position och utgör grunden för ytterligare objekt.

6

Implementera ett steg för rutnätsrörelse

Riktningssätt ändrar den lagrade rutnätspositionen varje gång med ett fält. Figuren återställs sedan med omvandlingsfunktionen, utan väggkontroll eller animation än.

7

Låt rörelse bli fri

Enkel rörelsespärr förhindrar att en hållen riktningssnabbknapp utlöser fler steg varje ram. Endast efter släpp kommer ett nytt enskilt steg att vara möjligt.

8

Förbered fasta väggar

En lista över fasta väggfält skapas och visas på rutnätet. Väggarna blockerar inte rörelse ännu, men introduceras först som separata spelobjekt.

9

Spärra rörelsen mot väggar

Rörelseskiktet kontrollerar innan varje steg om målfältet finns i vägglistan. Spelaren kan då bara röra sig till fria fält.

10

Visa förstörbara block

Bortsett från fasta väggar läggs en lista över förstörbara block till. Dessa fält får sin egen visning, men saknar ännu explosion eller borttagningslogik.

11

Placera bomb som dataobjekt

När man placerar en bomb lagras ett inlägg med spelarens nuvarande position. Även om endast en bomb tillåts åt gången, kommer synlighet, räknare och explosion att följa senare.

12

Placera en bomb endast en gång per tangenttryck

En bombspärr förhindrar att en hållen bombknapp återupprepar skapande av nya inlägg. Placeringen frigörs endast efter släpp av handlingen.

13

Gör bomb synlig under körning

Existerande bombinlägg visas som tecken under spelet. Uppdraget visar tydligt att dynamiska objekt inte kan ställas upp endast vid scenstart.

14

Lägg till bombräknare

Varje bomb får en temporär räknare som minskar med ramtid. Efter utgång markeras den för explosion utan att visa explosionen ännu.

15

Visa korsexplosion

Från en förberedd bomb uppstår ett kort korsform av explosionssfärer. Block och skada tas fortfarande bort så att explosionens geometri kan visas isolerat.

16

Ta bort block genom explosion

Explosionssfären jämförs med de förstörbara blocken. Endast påverkade block tas bort från listan; fasta väggar ändras inte.

17

Visa poäng för förstörda block

En poängvärde och ett HUD-visningsfält läggs till. Poängen ökar när ett förstörbart block försvinner genom explosion.

18

Kontrollera spelarens skada

Spelets logik kontrollerar om spelarens position ligger på en explosionssfär. I så fall sätts ett förlorat status och visas ett enkelt Game Over-meddelande.

19

Lägg till enkel fiender

En fiende läggs till som sin egen rutnätsfält och visas i spelets fält. Den rör sig inte ännu och orsakar ingen skada, men utvidgar spelets objektmodell från början.

20

Lägg till nivåmål och vinnarvillkor

Ett enkelt mål definieras: Om alla borttagna block är borta, ändras spelets status till vunnit. Ett synligt segermeddelande gör slutet på nivån tydligt.

21

Starta om med tangent och touch

En start- eller återstartåtgärd kopplas till tangentbord och touch. Efter ett vunnit eller förlorat status startar en tangenttryckning scenen säkert på nytt.

Kodfragment

Fragmentet visar den förberedda statens struktur och platsen där rörelse, bomber och regler kommer att läggas till stegvis senare.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
SZENE(
    'start',
    punkte=0,
    spiel_status='baustelle',
    raster_spalten=11,
    raster_zeilen=9,
    feld_groesse=16,
    bomben=[],
    bloecke=[],
    gegner=[]
)
def baustellen_regel(ctx):
    spieler = figur_von(ctx, 'spieler')
    if spieler is None:
        return
    status = wert_von(ctx, 'spiel_status', 'baustelle')
    if status == 'baustelle':
        # TODO: Hier entstehen später Bewegung, Bombe und Spielregeln.
        if aktion_aktiv(ctx, 'bombe'):
            pass
En visuell prototyp blir stegvis ett spelbart rutnätsspel med tydliga tillstånd och verifierbara regler.

Byggnadsblocket stöder en tydlig undervisningsorganisation eftersom varje utökning bygger på ett pågående projekt och ger verifierbara resultat. Differentiering är möjlig genom att lägga till motståndare, målbedinganden, poäng eller återstartlogik.

Begär en demo-tillgång och testa byggnadsblocket i din egen kurskontext.