GameBoard: Difference between revisions
(19 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
== Installera GameBoard == | == Installera GameBoard == | ||
git clone ssh:// | git clone ssh://<user>@steffe.net/home/stefan/gits/gameboard.git | ||
== Starta GameBoard == | |||
# Starta ett terminalfönster. I windows startar du "Kommandotolken". I Linux heter det vanligtvis "XTerm", "RXVT", "RoxTerm" eller liknande. | |||
# Gå till katalogen där du har laddat ner GameBoard. | |||
# 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) == | == GameBoard API referens (vad kan man göra med GameBoard) == | ||
Line 47: | Line 69: | ||
= Uppgifter del 2 - rita bilder = | = Uppgifter del 2 - rita bilder = | ||
== Rita en prick == | == Rita en prick == | ||
Line 64: | Line 84: | ||
== Rita med flera färger == | == Rita med flera färger == | ||
Rita ett 3x3 bräde med hörnen blåa, mitten röd och resten svarta. | 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|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|for-loopar]]'' | |||
= Uppgifter del 3 - animera = | = Uppgifter del 3 - animera = | ||
== Rita en blinkande prick == | == Rita en blinkande prick == | ||
Rita ett | 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|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. | |||
== Ritprogram == | |||
Rita ett 50x50 bräde. | |||
= 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. | |||
* https://sv.wikipedia.org/wiki/Objektorienterad_programmering | |||
* http://www.databasteknik.se/webbkursen/oo-grunder/ | |||
* https://docs.python.org/2/tutorial/classes.html | |||
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 == |
Latest revision as of 21:57, 14 December 2016
Instruktioner
Installera GameBoard
git clone ssh://<user>@steffe.net/home/stefan/gits/gameboard.git
Starta GameBoard
- Starta ett terminalfönster. I windows startar du "Kommandotolken". I Linux heter det vanligtvis "XTerm", "RXVT", "RoxTerm" eller liknande.
- Gå till katalogen där du har laddat ner GameBoard.
- 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.
Ritprogram
Rita ett 50x50 bräde.
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.
- https://sv.wikipedia.org/wiki/Objektorienterad_programmering
- http://www.databasteknik.se/webbkursen/oo-grunder/
- https://docs.python.org/2/tutorial/classes.html
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.