GameBoard: Difference between revisions

From indicium
Jump to navigation Jump to search
Stefan (talk | contribs)
Stefan (talk | contribs)
Line 168: Line 168:
=== Multiboll ===
=== Multiboll ===
Lägg till ytterligare 5 bollar med olika färg och hastighet.
Lägg till ytterligare 5 bollar med olika färg och hastighet.
== Pong ==
== Arkanoid ==
== Snake ==
== Tetris ==
== Luffarschack ==
== Dam ==
== Schack ==

Revision as of 14:38, 25 May 2016

Instruktioner

Installera GameBoard

git clone ssh://stefan@steffe.net/home/stefan/gits/gameboard.git

Starta GameBoard

  1. Starta ett terminalfönster. I windows startar du "Kommandotolken". I Linux heter det vanligtvis "XTerm", "RXVT", "RoxTerm" eller liknande.
  2. Gå till katalogen där du har laddat ner GameBoard.
  3. Kör kommandot python <dinfil.py> där dinfil.py är namnet på den python-fil du vill köra.

Python introduktion

if

if True:
        print("Detta är sant")
else:
        print("Detta är falskt")

for

for i in range(25):
        print("Detta är nummer" + i)

while

while True:
        print("Detta är en oändlig loop!")

GameBoard API referens (vad kan man göra med GameBoard)

Attribut Beskrivning
gb.w Bredden på GameBoarden räknat i antal punkter
gb.h Höjden på GameBoarden räknat i antal punkter
gb.d[][] Representerar en individuell punkt i GameBoard. Exempel: gb.d[3][5] = "red" sätter punkten på kolumn 3, rad 5 till röd. Notera att funktionen flip() sedan måste anropas för att detta skall synas i GameBoarden. På detta vis kan man först sätta flera punkter och sedan anropa flip() endast en gång.

Namnet på några vanliga färger är red, blue, green, yellow, pink, cyan, purple, orange, brown, black och white. Fler färger och deras namn finns här!

Funktion Beskrivning
gb.show() Visar själva fönstret som GameBoard ritas i. Anropas bara en gång i början på programmet.
gb.flip() När denna funktion anropas "flippas" alla punkter så att de punkter som ändrats i gb.d[][] faktiskt visas på GameBoarden.
gb.sleep(t) Pausar ditt program i t sekunder
gb.waitforevent() Pausar ditt program och väntar på att användaren skall göra något med fönstret (klicka i det, trycka på en knapp eller stänga det)
gb.close() Stänger ner GameBoard-fönstret

Uppgifter del 2 - rita bilder

Rita en prick

Rita ett 3x3 bräde med mittpricken röd och resten svarta.

Rita flera prickar

Rita ett 3x3 bräde med alla hörnen röda och resten svarta.

Rita en linje

Rita ett 3x3 bräde med ett horisontellt rött streck och resten svarta.

Rita en linje

Rita ett 3x3 bräde med ett vertikalt rött streck och resten svarta.

Rita med flera färger

Rita ett 3x3 bräde med hörnen blåa, mitten röd och resten svarta.

Rita större bräden 1

Rita ett 5x5 bräde med en blå ram, mittpricken röd och resten svarta.

Rita större bräden 2

Rita ett 5x5 bräde med ett gult "plus-tecken".

Rita stora bräden 1

Rita ett 25x25 bräde med ett gult horisontellt streck i mitten resten svarta. Tips: Använd en for-loop

Rita stora bräden 2

Rita ett 25x25 bräde med ett gult "plus-tecken" och resten blå. Tips: Använd flera for-loopar

Uppgifter del 3 - animera

Rita en blinkande prick

Rita ett 3x3 bräde. Från början är alla rutor svarta. Efter 1 sekund blir mittpunkten röd. Tips: Använd gb.sleep(t)

Rita en evigt blinkande prick

Rita ett 3x3 bräde. Alla rutorna skall vara svarta utom mittpunkten som skall växla mellan röd och svart. (1 sekund röd, sedan 1 sekund svart osv.) Tips: Använd en while loop

Rita en växande linje

Rita ett 3x3 bräde. Från början skall alla punkter vara svarta.

  • Efter en sekund blir mittpunkten till vänster röd.
  • Efter ytterligare en skund blir mittpunkten röd.
  • Efter ytterligare en sekund blir mittpunkten till höger röd.
  • Efter ytterligare en sekund blir alla punkter svarta igen.
  • Börja om från början igen

Knight Rider

Inspiration: https://www.youtube.com/watch?v=WxE2xWZNfOc

Rita ett 8x1 bräde. Från början skall alla punkter vara svarta.

  • Efter 0.1 sekund blir punkten längst till vänster röd.
  • Efter 0.1 sekund blir punkten längst till vänster svart igen och punkten näst längst till vänster blir röd.
  • Efter 0.1 sekund blir punkten näst längst till vänster svart igen och punkten näst näst längst till vänster blir röd.
  • ...
  • När alla punkter varit röda en gång, gå tillbaka igen.
  • Börja om från början igen

Uppgifter del 4 - input

Användarinput via mus

Rita ett 3x3 bräde. Från början skall alla punkter vara svarta.

  • När användaren klickar i en ruta skall den bli röd.

Användarinput via mus och tangentbord

Rita ett 25x25 bräde. Från början skall alla punkter vara svarta.

  • När användaren klickar på en svart punkt skall den bli röd.
  • När användaren klickar på en röd eller gul punkt skall den bli svart.
  • När användaren trycker på mellanslagstangenten skall mittpunkten bli gul.

Uppgifter del 5 - spel

Studsbollar

Rita spelplanen

Rita ett 25x20 bräde. Se till att yttersta ramen av punkter är röd.

Första bollen

Rita en gul prick i mitten av brädet.

  • Efter 0.1 sekunder skall pricken flytta sig ett steg åt höger och ett steg uppåt.
  • Upprepa

Studsa bollen

  • Om pricken kommer till kanten skall den studsa, dvs om den var på väg uppåt med en ruta / 0.1 sekund så skall den nu gå nedåt med 1 ruta / 0.1 sekund osv.

Andra bollen

Lägg till en boll i en annan färg som också studsar runt.

Tredje bollen

Lägg till ytterligare en boll i en annan färg som också studsar runt, men denna boll skall bara vara hälften så snabb, dvs flytta sig en ruta på 0.2 sekunder.

Objektorientering

Be någon mentor förklara begreppet objektorienterad programmering och visa hur man skapar klasser i Python.

Skriv om studsbollsspelet genom att använda objektorientering, dvs skapa en klass som heter Boll.

Multiboll

Lägg till ytterligare 5 bollar med olika färg och hastighet.

Pong

Arkanoid

Snake

Tetris

Luffarschack

Dam

Schack