In deze lesbrief leer je een spel te maken dat lijkt op het spel Riddle. Riddle is een spel waarbij je als te waren een conversatie hebt met een virtueel persoon. In dit geval moet de speler allerlei raadsels oplossen máár je kan dit ook aanpassen naar je eigen smaak. 

Rekenen

Iedereen weet wat rekenen is en heeft de basis van rekenen. Maar hoe werkt dit in python?
Het is eigenlijk vrij simpel, het werkt namelijk bijna precies het zelfde als normaal. Hier is een lijst van alle reken tekens in python :

= : ik voeg een waarde aan iets toe.
== : ik kijk of iets gelijk aan elkaar is.
> : ik stel dat iets groter is dan iets anders.
< : ik stel dat iets kleiner is dan iets anders.
>= : ik stel dat iets groter of gelijk is aan iets anders.
<= : ik stel dat iets kleiner of gelijk is aan iets anders.
+ : ik tel iets bij iets op.
– : ik trek iets bij iets af.
/ : ik deel iets door diets.
* : ik vermenigvuldig iets met iets.
Toch lijkt het wel op het systeem dat je op school gebruikt.

een ding dat ook goed is om te weten is dat alles dat een waarde van 1 of hoger is word beschouwd als True (waar) als je antwoord 0 is word het beschouwd als False (nietwaar).

Input en variabelen
De kern van dit spel is de input. Went met de functie input() Kun je de speler in aanraking laten komen met het spel. Hiermee kunnen we een speler overal op laten reageren. En met behulp van variabelen kunnen we de input gebruiken en er op reageren.

hoe werken variabelen?
een variabel is eigenlijk een woord dat een waarde heeft stel:
antwoord = 1
als ik nu antwoord type, type ik eigenlijk 1, want dat is de waarde die ik antwoord heb gegeven.
ook kun je rekenen met variabelen zoals :

antwoord + 1
als je nu antwoord typt dan staat er 2 omdat antwoord 1 erbij heeft gekregen, er staat eigenlijk 1 + 1.
stel dit:
name = “bob”
hier stel je dat name letterlijk “bob” betekent. Maar als je een woord letters of woorden wil opgeven moet je dat altijd tussen hoge komma’s zetten : name = “woord of letter”, dit hoeft niet bij getallen.
Hoe werkt input() ?
In dit geval stellen we de speler een vraag en dan geeft hij antwoord, dit kan in een getal of een woor/letter zijn, maár als je een cijfer wilt gebruiken moet je ook de functie int() gebruiken. Int staat voor integer en dat betekent simpelweg een getal. Hier geef ik een voorbeeld :
print (“? : Shall we play a game?”)
print (“0 = yes”)
print (“1 = no”)
answer = int(input())

If elif else statements
met het if statement stel ik eigenlijk de vraag als. Kijk mee

print (“? : Shall we play a game?”)
print (“0 = yes”)
print (“1 = no”)

answer = int(input())
if answer == 1:
print(name + ” : No thank you.”)
print(“? : Okay lets start shall we!”)
Hier kijk ik wat de speler heeft geantwoord namelijk 0 of 1.
dus ik stel de vraag als de variabel True is (1) dan voer uit
print(name + ” : No thank you.”)
print(“? : Okay lets start shall we!”)
hoe maak je een if statement?
je begint met het woord if en achter het woord if zet je wat je wilt checken
If answer == 1

hier check ik of answer gelijk is aan 1 en als dat waar is dan gaat het uitvoeren wat er achter het if statement staat.

if answer == 1:
print(name + ” : No thank you.”)
print(“? : Okay lets start shall we!”)

na wat je wilt checken moet je altijd een dubbele punt zetten. En dan pas mag je stellen wat er moet gebeuren als wat je checkt waar is. Er is een belangrijk ding. Python is zeer gevoelig met de ruimets die je tussen zinnen en de kantlijn maakt.

bij alle statements moet je bij de uitvoer altijd een tab tussen de kantlijn en het eerste woord hebben. Dat zie je bij: print(name + ” : No thank you.”) print(“? : Okay lets start shall we!”).
elif statement:
hiermee kun je een alternatief kiezen.
print (“? : Shall we play a game?”)
print (“0 = yes”)
print (“1 = no”)

answer = int(input())
if answer == 1:
print(name + ” : No thank you.”
print(“? : Okay lets start shall we!”)

elif answer >= 2 :
x = 10
print(“? : Well I knew one person called ” + name)
print(” and this person Is a really fucking asshole you know.”)
print(” He really dousn’t know how to listen and stuff and is overall just a douchebag.”)
print(“? : You still here, damn.”)
print(“? : I can tell you that this is going to be an long ride for you.”)

hier zie je dat ik eerst check of antwoord gelijk staat aan 1, stel dat is niet dan voert hij het if statement niet uit en gaat hij vervolgens naar het elif statement. En als het elif statement waar is dan voert hij uit wat achter elif staat.
Hoe maak je een elif statement?
een elif statement is precies het zelfde opgebouwd en werkt het zelfde, alleen is het onmogelijk om een alleen het elif statement te gebruiken. Er moet een if statement voor staan. Zodra dat is kun je zoveel mogelijk elif statements achter if zetten.

Else statement:
deze statement stelt eigenlijk als if en elif niet waar zijn dan voer dit uit.
print (“? : Shall we play a game?”)
print (“0 = yes”)
print (“1 = no”)

answer = int(input())
if answer == 1:
print(name + ” : No thank you.”
print(“? : Okay lets start shall we!”)

elif answer >= 2 :
x = 10
print(“? : Well I knew one person called ” + name)
print(” and this person Is a really fucking asshole you know.”)
print(” He really dousn’t know how to listen and stuff and is overall just a douchebag.”)
print(“? : You still here, damn.”)
print(“? : I can tell you that this is going to be an long ride for you.”)

else :
print(name + ” : yeah sure.”)
print(“? : I like you, lets get going”)

een else statement gaat als laatste in het rijtje. Je begint dus altijd met if, in het midden komt altijd elif en je eindigt met else. Else is eigenlijk zoals ik al zij alles klopt. maar het is niet dat als in dit geval answer 1 betekent dat hij het if en het else statement uitvoert. hij voert maar een van de statements uit als je een systeempje maakt zoals hierbove te zien is.

hoe maak je een else statement?
Ook hier maak je hem precies het zelfde als een if statement, alleen hoef je hier niet te stellen wat hij moet checken.

 

while loops

een while loop is eigenlijk een cirkel die continu doorgaat totdat het gene wat je checkt niet meer waar is. Kijk mee :

 

while answer :
print(“? : yeah you are!”)
print(“0 = Fine I’ll play!”)
print(“1 = No I am not!”)
answer = int(input())
if answer >= 1 :
print(name + “No I am not!”)

Hier word gevraagd of je nog door wilt spelen, máár je kan niet stoppen namelijk de while loop checkt wanneer je 1 typt of hoger. En wanneer je bij answer = int(input()) 0 invoert is het if statment gebroken net zoals de while loop omdat answer nu false is en niet meer true.

hoe maak je een while loop?
een wile loop maak je precies zoals een if statement. Zoals je hierboven dus ook ziet kun je al deze functies combineren hier heb ik dus while en if gecombineerd.

Combineren
if answer :
print(“March : well also pleasent meeting you!”)
print(“March : and no”)
print(“0 = my bad, pleasent meeting you.”)
print(“1 = for f*ck Sake!”)
answer = int(input())
if answer :
print(name + ” : For f*ck sake!”)
print(“March : Jesus calm down cowboy.”)
print(“March : Just one more riddle, okay?”)
print(“0 = Okay, fine…”)
print(“1 = Don’t tell me to calm down!”)
print(“2 = I am not playing anymore!”)
answer = int(input())
if answer == 0 :
print(name + ” : Okay, fine…”)
print(“march : good you calmed down :p “)
elif answer == 1 :
print(“Well I am!”)
print(“0 = yeah I can tell that!”)
print(“1 = Well… Don’t!”)
answer = int(input())
if answer :
print(name + ” : Well… Don’t!”)
while answer :
print(“March : yes, I will”)
print(“0 = Jesus okay I will keep playing!”)
print(“1 = no you don’t!”)
answer = int(input())
if answer :
print(name + ” : No you don’t!”)

else :
print(name + ” : yeah I can tell that!”)
print(“March : Good So keep playing !”)
print(“0 = …”)
print(“1 = okay…”)
answer = int(input())
if answer :
print(name + ” : okay…”)
print(“March : That is what I thought!”)
else :
print(name + ” : …”)
print(“March : That is what I thought!”)

else :
print(“March : ohh, Are you mad??”)
print(“0 = yes “)
print(“1 = no “)
if answer :
print(name + ” : No…”)
else :
print(name + ” : yes!”)
print(“March : Don’t be such a brat about this!.”)
print(name + “but…”)
else :
print(“March : So you still have maners, wouw…”)

else :
print(“March : Same.”)

Hier is een heel groot stuk code, dit is namelijk een hele grote combinatie van if , elif, else en while functies. In het begin zie je een if statement, dit is de gene die bepaald of de speler recht streeks naar de laatste else statement gaat of dat hij richting het volgende if statement stuurt. Vanuit daar heb je nog een kans om je te verontschuldigen en kan je nog rechtstreeks naar het enalaatste if statement en als je dat niet gaat dan ga je weer naar het volgende if statement. Vanuit daar komt de eerste elif statement tevoorschijn, hier heb je namelijk drie keuzes en al deze zorgen ervoor dat je nog verder in de discussie gaat.

Time
Wat is time?
Time is een module die je kunt importeren in de game zodat je dus tijd kan toevoegen aan je spel.
om dit te gebruiken gebruik je de functie time.sleep(). Tussen de haakjes zet je dan hoelang je wilt dat de code stil staat, dit gaat in secondes.

import time

x = 0

print (“? : Hey there!”)
time.sleep(1 + x)
print(“? : What is your name?”)
name = input()
print(“? : funny name :P”)
time.sleep(1)
print (“? : Shall we play a game?”)
time.sleep(1 + x)
print (“0 = yes”)
print (“1 = no”)

Hier kun je zien dat ik ook gebruik heb gemaakt van variabelen. Er staat namelijk time.sleep(1+x) in dit spel zit een easter egg en als je dat vind word de x geactiveerd en krijgt het een waarde van 10 waardoor het spel extra langzaam gaat. Zo zie je hier weer een handige functie van variabelen terug komen. En later word nogmaals de x aangepast tot 0 of 30.

Categorieën: Python