Spelprogrammering på iPad

By JohanKitzing

1.4K 1 2

Spelprogrammering med appen Tickle. More

Kapitel 1: Komma igång med första programmet
Kapitel 2: Att svänga, vänta och upprepa
Kapitel 3: Att välja utseende och storlek
Kapitel 4: Kommandon för rörelse
Kapitel 5: Godisjakt del 1 styra karaktär med fingret
Kapitel 6: Godisjakt del 2 bryta vid game over
Kapitel 7: Multiplikationsspel
Kapitel 8: Vinkelspel
Kapitel 9: Avrundningsspel
Kapitel 10: Hur man styr karaktär med pilknappar
Kapitel 11: Hur man skjuter missil mot ubåt
Kapitel 12: Hur man inte åker ut från skärmen
Kapitel 13: Hur man använder iPad som gaspedal
Kapitel 14: Hur man använder iPad för att svänga
Kapitel 15: Spelet poängjakt programspecifikation
Kapitel 16: Spelet poängjakt del 1
Kapitel 17: Spelet poängjakt del 2
Kapitel 18: Spelet poängjakt del 3
Kapitel 19: Testprogram för spelet poängjakt
Kapitel 21: Spelet memory huvudprogram
Kapitel 22: Spelet memory hjälpprogram del 1
Kapitel 23: Spelet memory hjälpprogram del 2
Kapitel 24: Spelet memory objekt
Kapitel 25: Testprogram för spelet memory
Kapitel 26: Hur man styr roboten Sphero med iPad
Kapitel 27: Mall för programspecifikation
Kapitel 28: Mall för programmering

Kapitel 20: Spelet memory programspecifikation

22 0 0
By JohanKitzing


Vad du kommer att lära dig

Hur man skriver en programspecifikation för ett mer komplicerat program.


Vad du först behöver kunna

Hur man skriver en enkel programspecifikation enligt kapitel 7.


Hur man kan skriva programspecifikationen för spelet memory:

Programspecifikation: namn

Memory


Programspecifikation: spelets funktion

En röd startknapp syns på skärmen.

När man trycker på startknappen lottas 6 brickor ut.

Brickorna visar sig som månar som ligger med tre månar i rad i två rader.

På "baksidan" av månarna finns "leaf", "leaf", "flower", "flower", "batman" och "batman" på slumpvisa platser.

När en raket visar sig får man trycka på en valfri måne.

Man ser då vad som finns på baksidan. "leaf", "flower" eller "batman".

När raketen visar sig igen får man trycka på en annan valfri måne.

Man ser då vad som finns på baksidan. "leaf", "flower" eller "batman".

Om bilderna är olika vänds brickorna automatiskt tillbaka efter en stund så att de visar sig som månar igen. Man får då börja om och trycka på månar igen när raketen visat sig. Om bilderna är lika försvinner de efter en stund.

När man har plockat alla 6 brickorna visar game over på skärmen.

Sedan visar sig den röda startknappen igen och man får börja om.


Programspecifikation: Data

FALSE 0

TRUE 1

LOOKHIDE 0

LOOKFLOWER 1
LOOKBATMAN 2

LOOKLEAF 3

LOOKHIDEFLOWER 11

LOOKHIDEBATMAN 12

LOOKHIDELEAF 13


StateWaitToStart 1

StateInitNewGame 2

StatePickFirst 3

StatePickSecond 4

StateCheckMatch 5

StateNoMatch 6

StateMatch 7

StateGameOver 8


ObjectDoAPick TRUE om objektet ska köras, FALSE när klart

ObjectGameOver TRUE om objektet ska köras, FALSE när klart

ObjectStartButton TRUE om objektet ska köras, FALSE när klart

ManageInitNewGame TRUE om hjälpprogrammet ska köras, FALSE när klart

ManageLayOutChar TRUE om hjälpprogrammet ska köras, FALSE när klart

ManageMatch TRUE om hjälpprogrammet ska köras, FALSE när klart

ManageNoMatch TRUE om hjälpprogrammet ska köras, FALSE när klart

ManagePickFirst TRUE om hjälpprogrammet ska köras, FALSE när klart

ManagePickSecond TRUE om hjälpprogrammet ska köras, FALSE när klart

ManageTest TRUE om hjälpprogrammet ska köras, FALSE när klart


InitDone: TRUE när InitProgram har gjort klart initieringarna.

AllPicked: TRUE när alla memorybrickor är tagna.

CharAtObject1 Innehåll i memorybricka 1, t.ex. LOOKLEAF, se ovan

CharAtObject2 Innehåll i memorybricka 2

CharAtObject3 Innehåll i memorybricka 3

CharAtObject4 Innehåll i memorybricka 4

CharAtObject5 Innehåll i memorybricka 5

CharAtObject6 Innehåll i memorybricka 6

DoAPick: TRUE när spelaren får peka på en bricka

NrOfPicked Antal tagna memorybrickor (2, 4 eller 6)

ObjectsMatch TRUE om de två tagna brickorna har samma figur.

PickedCharacter1: Karaktären på den först valda memorybrickan.

PickedCharacter2: Karaktären på den andra valda memorybrickan.

RandomNumber Karaktären på en lottad memorybricka.

State Tillstånd i huvudprogrammets tillståndsmaskin.


RandomList En lista med 6 karaktärer som man ska lotta från:

LOOKHIDEFLOWER

LOOKHIDEFLOWER

LOOKHIDEBATMAN

LOOKHIDEBATMAN

LOOKHIDELEAF

LOOKHIDELEAF


Programspecifikation: Programstruktur

InitProgram

MainProgram: StateWaitToStart

     ObjectStartButton

MainProgram: StateInitNewGame

     ManageInitNewGame

          ManageLayOutChar

MainProgram: StatePickFirst

     ManagePickFirst

          ObjectDoAPick

MainProgram: StatePickSecond

     ManagePickSecond

          ObjectDoAPick

MainProgram: StateCheckMatch

MainProgram: StateNoMatch

     ManageNoMatch

MainProgram: StateMatch

     ManageMatch

MainProgram: StateGameOver

     ObjectGameOver

Object1

Object2

Object3

Object4

Object5

Object6


Programspecifikation: Initieringsprogram

Namn: InitProgram

Utseende: Blue Start Flag

Placering på skärmen: Längst uppe i vänstra hörnet.

Funktion: Sätter FALSE till 0 och TRUE till 1.

Sätter InitDone till FALSE.

Ger följande konstanter sina värden:

LOOKHIDE: 0

LOOKFLOWER: 1

LOOKBATMAN: 2

LOOKLEAF: 3

LOOKHIDEFLOWER: 11

LOOKHIDEBATMAN: 12

LOOKHIDELEAF: 13

StateWaitToStart: 1

StateInitNewGame: 2

StatePickFirst: 3

StatePickSecond: 4

StateCheckMatch: 5

StateNoMatch: 6

StateMatch: 7

StateGameOver: 8


Sätt följande flaggor till FALSE

ManageInitNewGame

ManageLayOutChar

ManagePickFirst

ManagePickSecond

ManageNoMatch

ManageMatch

ManageTest

ObjectStartButton

ObjectGameOver

ObjectDoAPick

AllPicked

DoAPick

ObjectsMatch


Sätter InitDone till TRUE när initieringen är färdig.


Programspecifikation: Huvudprogram

Namn: MainProgram

Utseende: Hatt

Placering på skärmen: Längst uppe i mitten av skärmen.

Funktion: Är uppbyggd av en tillståndsmaskin enligt figuren på nästa sida och övergångarna mellan de olika tillstånden framgår av denna figur.

StateWaitToStart: Kör objektet ObjectStartButton som visar en startknapp och väntar på att spelaren ska trycka på den.

StateInitNewGame: Kör hjälpprogrammet ManageInitNewGame som slumpar ut 6 nya memorybrickor.

StatePickFirst: Kör hjälpprogrammet ManagePickFirst som sköter spelarens första tryck på en memorybricka.

StatePickSecond: Kör hjälpprogrammet ManagePickSecond som sköter spelarens andra tryck på en memorybricka.

StateCheckMatch: Går till StateMatch om flaggan ObjectsMatch = TRUE.

Går till StateNoMatch om flaggan ObjectsMatch = FALSE.

StateNoMatch: Kör hjälpprogrammet ManageNoMatch som vänder två memorybrickor som inte var lika upp och ner.

StateMatch: Kör hjälpprogrammet ManageMatch som tar bort två memorybrickor som är lika.

Går till StateGameOver om flaggan AllPicked = TRUE

Går till StatePickFirst om flaggan AllPicked = FALSE

StateGameOver: Kör objektet ObjectGameOver som visar en Gameover flagga.


Programspecifikation: Objekt

Namn: ObjectStartButton

Utseende: Röd startflagga

Placering på skärmen: Till vänster på skärmen snett under hatten.

Funktion: Gömmer memorybrickorna genom att sätta

CharAtObject1, CharAtObject2, CharAtObject3, CharAtObject4, CharAtObject5, CharAtObject6 till LOOKHIDE.

Visar röd startflagga mitt på skärmen och väntar till spelaren trycker på den.

Gömmer startflaggan igen.


Namn: ObjectDoAPick

Utseende: Raket

Placering på skärmen: Under hatten

Funktion: Visar en raket högt uppe på skärmen i 0,5 sekunder.


Namn: ObjectGameOver

Utseende: Röd GameOver flagga

Placering på skärmen: Till höger om raketen

Funktion: Gömmer memorybrickorna genom att sätta

CharAtObject1, CharAtObject2, CharAtObject3, CharAtObject4, CharAtObject5, CharAtObject6 till LOOKHIDE.

Visar röd GameOverflagga mitt på skärmen i 3 sekunder.


Namn: Object1, (Object2, Object3, Object4, Object5, Object6)

Utseende: 1, (2, 3, 4, 5, 6)

Placering på skärmen: Under raketen i ordningen 1, (2, 3, 4, 5, 6)

Funktion: Object 1 placeras på x: -90 y: 45

(Object 2 placeras på x: 0 y: 45)

(Object 3 placeras på x: 90 y: 45)

(Object 4 placeras på x: -90 y: -45)

(Object 5 placeras på x: 0 y: -45)

(Object 6 placeras på x: 90 y: -45)


Om CharAtObject1 >= 10 (då är brickan upp och ner)

     Om DoAPick = TRUE (spelaren får tillstånd att trycka)

          Om spelaren trycker på objektet

                Vänd på brickan (Minska CharAtObject1 med 10)

                Om State = StatePickFirst så

                     Sätt PickedCharacter1 till CharAtObject1

               Om State = StatePickSecond så

                    Sätt PickedCharacter2 till CharAtObject1

               Sätt DoAPick till FALSE (Vi har tagit en bricka)

               Använd värdet i CharAtObject1 för att gömma objektet eller visa 

               blomma, Batman eller löv.

          Annars (spelaren tryckte inte på objektet)

               Visa månen

     Annars (spelaren får inte tillstånd att trycka)

          Visa månen

Annars (Då är brickan inte upp och ner)

     Använd värdet i CharAtObject1 för att gömma objektet eller visa 

     blomma, Batman eller löv.


Programspecifikation: Hjälpprogram

Namn: ManageInitNewGame

Utseende: 1 Gömd!

Placering på skärmen: längst ner till vänster på skärmen

Funktion: Lägg 11 (en gömd blomma) på plats 1 och 2 i RandomList.

Lägg 12 (en gömd Batman) på plats 3 och 4 i RandomList.

Lägg 13 (ett gömt löv) på plats 5 och 6 i RandomList.

Kör hjälpprogrammet ManageLayOutChar som lägger en gömd

blomma, en gömd Batman eller ett gömt löv i variabeln

RandomNumber. Sätt CharAtObject1 till RandomNumber.

Kör ManageLayOutChar och sätt CharAtObject2 till RandomNumber.

Kör ManageLayOutChar flera gånger och sätt på samma sätt

CharAtObject3, CharAtObject4, CharAtObject5 och CharAtObject6

till RandomNumber.

Sätt NrOfPicked till 0.

Sätt DoAPick till FALSE.


Namn: ManageLayOutChar

Utseende: 2 Gömd!

Placering på skärmen: längst ner till vänster på skärmen

Funktion: Slumpa ett valfri plats i listan RandomList.

Sätt RandomNumber till talet på den platsen i RandomList.

Ta bort hela den platsen från RandomList.


Exempel: RandomList, plats 1: gömd blomma.

RandomList, plats 2: gömd blomma.

RandomList, plats 3: gömd Batman.

RandomList, plats 4: gömt Batman.

RandomList, plats 5: gömt löv.

RandomList, plats 6: gömt löv.

Slumpa plats 3.

Sätt RandomNumber till gömd Batman.

Ta bort plats 3 så att listan nu ser ut så här:

RandomList, plats 1: gömd blomma.

RandomList, plats 2: gömd blomma.

RandomList, plats 4: gömt Batman.

RandomList, plats 5: gömt löv.

RandomList, plats 6: gömt löv.


Namn: ManageManagePickFirst

Utseende: 3 Gömd!

Placering på skärmen: längst ner till vänster på skärmen

Funktion: Sätt DoAPick till TRUE.

Kör ObjectDoAPick som visar en raket.

Vänta tills DoAPick = FALSE. (Spelaren har vänt en memorybricka).


Namn: ManagePickSecond

Utseende: 4 Gömd!

Placering på skärmen: längst ner till vänster på skärmen

Funktion: Sätt DoAPick till TRUE.

Kör ObjectDoAPick som visar en raket.

Vänta tills DoAPick = FALSE. (Spelaren har vänt en memorybricka).

Om PickedCharacter1 = PickedCharacter2 så

     Sätt ObjectsMatch till TRUE

Annars

     Sätt ObjectsMatch till FALSE


Namn: ManageNoMatch

Utseende: 5 Gömd!

Placering på skärmen: längst ner till vänster på skärmen

Funktion: Om det finns en uppvänd bricka i CharAtObject1 så

     vänd på brickan. (1 blir 11, 2 blir 12, 3 blir 13).

Gör på samma sätt för CharAtObject2, CharAtObject3,

CharAtObject4, CharAtObject5 och CharAtObject6.


Namn: ManageMatch

Utseende: 6 Gömd!

Placering på skärmen: längst ner till vänster på skärmen

Funktion: Om det finns en uppvänd bricka i CharAtObject1 så

     ta bort brickan (ge CharAtObject1 värdet 0).

Gör på samma sätt för CharAtObject2, CharAtObject3,

CharAtObject4, CharAtObject5 och CharAtObject6.

Öka NrOfPicked med 2.

Om NrOfPicked = 6 så

     Sätt AllPicked till TRUE

Annars

     Sätt AllPicked till FALSE


Continue Reading

You'll Also Like

64 0 3
En självbiografi om de 15år jag levde med en psykiskt sjuk man.
2.9K 80 47
En bok för alla som vill hitta nycklar, redskap och inspiration för att leva ett friskare och hälsosammare liv med mer energi, frid & fokus, oavsett...
6 0 1
Ett aktuell etiskt dilemma som kan relateras till religion och livssyn i Sverige. - Värdegrunden och relationen (till eleverna och skolans personal...
6 1 1
Hoppas ni gillar denhär "boken"