Start to code: tutorial! 🔥

Welkom bij de tutorial!

In deze tutorial gaan we stap voor stap een spelletje maken. Dit spelletje is een variant op het bekende spelletje "blad, steen, schaar". Het spelletje zal er als volgt uitzien:

game

Het spelletje zal bestaan uit 2 spelers, de speler en de computer. De speler zal steeds een keuze moeten maken tussen steen, papier of schaar. De computer zal ook een keuze maken tussen steen, papier of schaar. De speler die de beste keuze maakt wint het spelletje.

Om dit spelletje te maken gaan we gebruik maken van HTML, CSS en JavaScript. HTML is de basis van een website, CSS is de stijl van de website en JavaScript is de functionaliteit van de website.

Voor we van start kunnen gaan...

Voorbereiding 1: Visual Studio Code installeren en mappenstructuur downloaden

Download VSC via deze link. VSC of Visual Studio Code is een teksteditor die specifiek ontworpen is voor het bewerken van de broncode van computerprogramma's door programmeurs, hiermee gaan we dus werken!

vsc

Voorbereiding 2: Download de mappenstructuur via deze link

Deze mappenstructuur bevat de basis voor het maken van een website. De mappenstructuur bevat de volgende mappen:

mappenstructuur

Voorbereiding 3: Installeer de live server extensie

De live server extensie zorgt ervoor dat je de website kan bekijken in je browser. Dit is handig omdat je dan direct kan zien of de code die je schrijft werkt.

live-server

Start de live server door rechtsonder de blauwe balk te klikken op "Go Live", je standaard browser zal nu gestart worden!

1.4 Open de mappenstructuur in VSC

Nu kan je terug naar je startpagina in VSC, daar staat onder "start" het icoontje van een mapje met de tekst "open". Klik hier nu op en selecteer de gedownloadde mappenstructuur vanaf de locatie waarop je hem hebt opgeslagen.

Stap 1: Onze basis!

Zet de structuur van je HTML klaar. Dit is als het ware je vertrekpunt, het skelet waarmee we aan de slag kunnen gaan. Voeg bij "title" ook ineens een titel toe, bijvoorbeeld: "Leren Coderen - Blad, Steen, Schaar".

Stap 2: Voeg extra code toe

Als je nu gaat kijken via de live extentie, dan zie je dat je pagina al werkende is.

De volgende stap is nu om onze CSS (de stijl) en de JavaScript (functionaliteit van onze game) toe te voegen. We doen dit door de script.js en style.css de linken aan ons HTML-bestand.

Wanneer je dat gedaan hebt voegen we ook een container toe waarin we ons spel gaan zetten. Gevolgd door een bijhorende titel

Stap 3: Voeg wat CSS toe

Voila, onze basis staat er! Enkel ziet er nog niet zo mooi uit. We gaan wat styling toepassen!

We voegen een achtergrondkleur toe, stylen onze lettertype qua grootte, vorm, kleur enzovoort. Probeer eventueel zelf om wat dingen zelf aan te passen om te zien wat je krijgt als resultaat. Zo kan je met groottes van lettertypes (in px) of met de kleur van je achtergrond spelen.

Stap 4: Voeg de spelers toe

Wat is een spel zonder spelers? We voegen ze gelijk toe!

We voegen spelers toe aan de hand van zogenaamde "divs". We geven ze een class mee zodat we ze kunnen stylen en id. De id voor JavaScript!

Wat is een div?

Het DIV element is een voorbeeld van een HTML element. Met dit element kun je een onderdeel van je pagina insluiten en precies daar positioneren waar jij wilt. Dat zie je eigenlijk al aan de naam van het DIV element: 'DIV' is afgeleid van 'division', wat 'verdeling' betekent.

Stap 5: Voeg de keuzes toe

De volgende stap is de keuzes toevoegen tussen blad, steen of schaar. Aangezien we er later op moeten klikken, maken we gebruik van "knoppen" of "buttons"

Ook hier zie je dat er weer classes worden gebruikt voor de stijl en id's voor de functionaliteit als we straks echt beginnen programmeren.

Zijn we nu nog niet aan het programmeren dan?

coderen is het omzetten van instructies in code. Coderen kan ook verwijzen naar het proces van het creëren van een ontwerp of lay-out (CSS, HTML)voor een website of applicatie. terwijl programmeren gaat over het bedenken van de logica (JavaScript) van een programma en het schrijven van code om die logica uit te voeren. Hoewel deze termen vaak door elkaar worden gebruikt, is het belangrijk om te onthouden dat ze niet precies hetzelfde betekenen en dat ze in verschillende contexten kunnen worden gebruikt.

Stap 6: Voeg de gepaste CSS toe

Tijd om onze classes te gebruiken, pas volgende code toe om alles weer wat mooier te maken. Goed om te weten: als je een class wilt stijlen in CSS, dan zet je er een "." voor!

Stap 7: Het spel laten werken

Javascript

We voegen een constante toe. Deze zal altijd dezelfde waarde hebben. Voeg tussen de aanhalingstekens je eigen naam toe!

De onderste lijn gaan we gebruiken om jouw naam vanuit de JavaScript toe te wijzen aan het stukje HTML dat we daarnet die bepaalde id hebben gegeven.

Sla de code op en je ziet je naam verschijnen op je scherm!

Elementen aanspreken

Nu gaan we alle HTML elementen selecteren via zogenaamde DOM-manipulatie. Simpel uitgelegd selecteren we HTML elementen met een bepaalde id zodat we er vanuit JavaScript dingen mee kunnen doen.

Levens aanspreken

Wanneer dat gebeurd is kunnen we voor het eerst een functie toevoegen. We maken een functie "toon_levens". Deze functie gaan we daarna toepassingen op de aan te spreken elemnten.

Levens tonen

Vervoglens gaan we bepalen hoeveel levens we hebben. In dit voorbeeld kiezen we voor 5, maar je kan dit zelf ook wijzigen.

In tegenstelling tot daarnet werken we nu met een "let" i.p.v. met een "const". Dit omdat het geen constante is maar omdat het variabel kan zijn.

Toon afbeeldingen wanneer op een knop geklikt wordt

Ons spel ziet er nog wat leeg uit. Voeg drie afbeeldingen toe voor blad, steen en schaar om het wat levendiger te maken. Je kan ook eigen afbeeldingen zoeken vanop het internet en de url hier plakken als je dat wenst.

// We voegen een functie toe om de afbeeldingen te tonen van blad, steen of schaar wanneer we op desbetreffende knop klikken. Op datzelfde moment zal de computer een random afbeelding van blad, steen of schaar tonen. De afbeeldingen kan je bovenaan dit bestand aanpassen.

Er gebeurde nog niks? We moeten de functie nog toepassen wanneer we op de corresponderende knop klikken

Onderaan deze code snippet staan nog 3 lijnen code. Als we deze toevoegen aan ons script dan voegen we een zogenaamde EventListener toe. Zoals de naam suggereert, luistert deze naar een bepaald evenent. Als deze voorvalt, dan zal er iets gebeuren. In dit geval wordt er dus een functie aangesproken vanaf er geklikt wordt.

Ga het gevecht aan, doe iets met he blad, de steen of de schaar

Tijd om in actie te schieten. We schrijven nu de blad_steen_schaar functie om ons spel verder tot leven te wekken.

We werken met zogenaamde if, else statements. Dit wilt zeggen: als het ene voorvalt, dan is het andere van toepassing (of vice versa)

Nog enkele verduidelijkingen m.b.t. deze functie:

  • === betekent dat het strikt gelijk is. De keuze van een speler is dus gelijk aan bijvoorbeeld blad.

  • && wilt zeggen dat beide operatoren gelijk moeten zijn. Deze regel code werkt dus enkel als beide factoren tussen de haakjes van toepassing zijn.

  • De -1 wilt zeggen dat er een leventje verdwijnt.

Opnieuw zien we nog geen resultaat aangezien we de functie moeten oproepen, dit doen we in onze 'vooruitgang' functie

Zoek de 'vooruitgang' functie en pas de blad_steen_schaar functie hieraan toe om te kijken wie er wint.

We zien geen feedback? Dat komt omdat we nu de levens moeten updaten met dezelfde functie die we in het begin gebruikten.

Om aan te tonen wie er wint, voegen we eerst nog een aantal elementen toe aan ons HTML en ook wat styling in onze CSS

We stijlen nu onze levens, de speler, het speeldveld en alle andere zaken die we nog geen CSS hadden meegegeven.

Daarna passen we een nieuwe functie toe om aan te tonen wie gewonnen is

Met de functie 'einde_spel' doen we exact wat de naam van de functie suggereert. De functie krijgt 2 argumenten mee: de levens van de speler en de levens van de computer.

Ook hier maken we weer gebruik van de if-else statements.

De functie 'verberg_keuzes' zorgt ervoor dat onze keuzeknoppen verdwijnen wanneer er een winnaar is. Gelukkig hadden we deze klasse al gestyled in onze CSS in de vorige stap.!

Opnieuw, het werkt niet? Jawel, maar we moeten deze controle ook in onze vooruitgang steken.

Een nieuw spel starten? We voegen eerst een knop toe hiervoor aan ons spel

Even terug naar onze HTML. We voegen een button toe om het spel opnieuw op te starten.

We moeten eerst de knop aanspreken en voegen ook nog 2 variabelen toe om gemakkelijk hetzelfde aantal levens te gebruiken

We voegen de reset functie toe

En natuurlijk moeten we de functie aan de knop koppelen

En we zijn klaar.

De finale code

Het finale resultaat