Python wordt in Back-end Development erg veel gebruikt. Hier kan de taal gebruikt worden om processen te automatiseren, om te communiceren met databases en webservers en natuurlijk om krachtige webapplicaties te ontwikkelen! Met Python kan ik grote bergen data makkelijk analyseren, visualiseren en zelfs optimaliseren.
Pygame is een Python library die het voor (Python) developers makkelijker maakt om games te maken. Je hoeft niet opnieuw het wiel uit te vinden. Pygame zal mij de nodige elementen geven om mijn games eenvoudiger te programmeren.
Een database is een systeem waar data geordend en overzichtelijk verzameld wordt. Dat gebeurt meestal in omvangrijke tabellen, waardoor informatie snel en via een vaste structuur van kolommen en rijen opgeslagen en teruggevonden kan worden. Databases worden gebruikt voor de gegevens van de games bij te houden in mijn eindwerk.
De database die ik gebruik voor mijn eindwerk is MariaDB. Deze installeer ik op de raspberry PI 4B om de highscores in weg te schrijven.
Clickcharts is een programma dat ik gebruik voor het maken van mijn flowcharts.
DBeaver gebruik ik voor het bekijken van de database of aanpassen op de Raspberry PI 4B via mijn computer.
De flowchart start met het intitializeren van de objecten en de joysticks (en buttons). Daarna start de main loop. In de mainloop kijken we direct naar verschillende 'events'. Het eerste event is de beweging van de joystick, als dit ja is kijk ik of joystick1 naar omhoog gaat. Als joystick1 omhoog gaat gaat paddle1 omhoog.
Als we verder gaan kijken we of joystick 1 naar ondergaat en zal paddle1 naar omlaag gaan. Verder in de flowchart doen we dan hetzelfde voor joystick 2. Als dan beide joysticks apart niet zouden bewegen zal paddle1 of paddle2 niet meer bewegen. Het volgende event kijkt naar het indrukken van een bepaalde knop. Als knop 0 wordt ingdrukt (knop A) en playing False is zal de ball beginnen met bewegen en zal playing op True worden gezet.
Als button 1 (knop B) wordt ingedrukt zal dit de scores resetten. Als button 3 (knop SELECT) wordt ingedrukt zal de game eindigen en terug naar het startscherm gaan. Achter dat de events zijn overlopen zal de paddle1 bewegen en clampen (niet uit het scherm bewegen) en zal ook paddle2 hetzelfde doen, als de joysticks bewegen.
Zoals ik al had vermeld zal paddle2 ook clampen. Als playing dan True is zal het scherm hertekend worden en zal de ball beginnen met bewegen. De ball zal langzaam aan versnellen tot er gescoord wordt. Daarna gaan we kijken op collisions met de paddles en met de muren (boven en onderkant van het scherm). De collision zal de X of Y versnellen van de ball omgekeerd zetten.
Uiteindelijk kijken we of er gescoord wordt door speler 1 of 2 en zal er een punt worden opgeteld en zal de ball terug in het midden starten. Op het einde updaten we het hele scherm nog eens.
Het is eigenlijk heel eenvoudig. De game zal starten met het tekenen van het scherm en direct in mainloop springen. Dan gaan we kijken naar bepaalde events. Het event waar we naar kijken is of de knoppen worden ingedrukt. Als knop (knop A) wordt ingedrukt zal de game beginnen. Als knop 3 (knop SELECT) wordt ingedrukt zal het spel stoppen en het startscherm zal terug openen.
De game zal starten met het initializeren van de objecten. Dan zetten we verschillende dingen aan voor het starten van het spel. Als we dan in de mainloop gaan gaan we het scherm tekenen en kijken op events. Het eerste event is de beweging van de joystick als de eerste joystick naar links gaat zal de shape van P1 (Player 1) naar links gaan. Dit zullen we ook bekijken bij het volgende maar voor shape van P2.
In dit event zullen we bekijken of de joysticks naar rechts gaan als dit zo is zal de shape van P1 of P2 naar rechts gaan. Bij het laatste van het eerste event gaan we kijken of de joysticks naar beneden gaan en dan zal shape P1 of P2 naar beneden gaan. Bij het tweede event als knop (knop A) wordt ingedrukt zal shape P1 omdraaien en dit zal ook zo zijn bij shape P2. Als we op knop 3 (knop SELECT) drukken zal de game eindigen en naar het highscorescreen gaan.
Als playing van P1 True is zullen we overlopen of de shape beneden is of niet, als dit zo is zal deze in de grid worden geschreven en kijken we ook of de grid een volle lijn heeft. Als de posY van de shape boven 4 gaat zal het spel van speler 1 stoppen. Als dit niet zo zou zijn zal er een nieuwe shape worden geïntializeerd en zal deze een nieuwe shape aanmaken.
Alles wat er gebeurd is voor Player 1 zal ook gebeuren voor Player 2.
Uiteindelijk als beide spelers 'game over' zijn zal er 5 seconden worden gewacht en zal de game eindigen en naar het highscorescreen gaan. Als dit niet zou gebeuren zal de display updaten.
We beginnen met verschillende variabelen te declareren en het initializeren van de objecten. Dan gaan we in de mainloop. Als de highscores moeten getoond worden zal de WIN (window) zwart worden en de highscores tonen. als dat niet moet zullen er 6 letters getoond worden om je naam te kiezen. Als teller1 een bepaald getal is zal een bepaalde select of rand rond de letter waar je opstaat getoond worden.
Het begin is al besproken bij het vorige. Daarna gaan we kijken naar events. Het eerste event is de beweging van de joysticks. Als de joystick naar links gaat zal de teller -1 doen, maar als de teller 0 zou worden zal deze 2 worden. Dit bekijken we ook voor de tweede joystick.
Nu bekijken we het omgekeerde als de joystick naar rechts zou gaan zal de teller + 1 doen. Als de teller dan 3 zou worden zal deze 0 worden. Dit gebeurd ook voor de tweede joytick. Het volgende dat we bekijken is of de joystick naar omhoog gaat als dit zo zou zijn zal de de Letter veranderen met +1.
Als dan de joytick een verticale beweging naar boven of beneden zou maken zullen de letters veranderen. Maar als de letters boven of onder een bepaald aantal gaat zal deze terug naar de onderste of bovenste waarde gaan.
Hier gebeurt het zelfde als bij het vorige deel. De letter zal dus veranderen naar gelang welke verticale beweging er wordt gemaakt met de joysticks.
Hier gebeurt het zelfde als bij het vorige deel. De letter zal dus veranderen naar gelang welke verticale beweging er wordt gemaakt met de joysticks.
Bij het volgende event kijken we of beide spelers de button 0 (knop A) hebben ingedrukt als dit zo is zetten ze beide hun naam vast en zal deze zo in de database staan. Als button 3 (knop SELECT) wordt ingedrukt gaan je terug naar het beginscreen. Als dan beide namen zijn gekozen wordt teller3 aangezet door telkens + 1 te doen.
Ten slotte zal teller3 5 seconden tellen en dan zal de data eerst worden gehaald, dan geupdate voor speler 1, daarna voor speler 2, wordt de data ook opgeslagen en dan worden de highscores getoond. Ook zal het scherm nog worden geupdate.
Het begint met het initializeren van de objecten en joysticks. Daarna gaan we in de mainloop en kijken we naar verschillende events, het eerste event is de beweging van een bepaalde joystick. Als de joystick 1 of 2 naar onder zouden gaan zal de count + 1 doen.
Als de joystick naar boven zou gaan zal de count - 1 doen. Bij het volgende event kijken we of knop 3 (knop SELECT) wordt ingedrukt. Dan kijken we welk aantal count heeft en openen die bepaalde game. Eerst zal het scherm verkleint worden, dan zal de game geopend worden en zal het scherm terug groot worden gezet (omdat er maar 1 game fullscreen kan staan). De events worden ook nog gecleared, zodat nu alleen de game die fullscreen staat gespeeld kan worden en dat er niks achtergronds gebeurd.
De laatste game wordt iets anders uitgevoerd. Omdat de game alleen kan gestart worden vanuit een bepaalde directory. Eerst onthoud je het 'path' naar de normale directory, daarna ga je naar de directory van de game, dan start je het spel, daarna als het spel is afgelopen zal de directory terug naar de vorige directory gaan waar we zaten. Dan kijken we of run True is en zal het scherm opnieuw tekenen. Ten slotter kijken we welke waarde count heeft en zetten we een bepaalde afbeelding op het scherm.
Het laatste deel kijken we nog even naar de count als de count ook over of onder een bepaald aantal gaat zal deze goed worden gezet. Ten slotte wordt de display geupdate.