In dit artikel gaan we een “Guess number” game maken met Java. Je kan ook zeggen dat we een “Random number guessing” game met Java gaan maken, je kan het allerlei benamingen geven. De bedoeling van de game is dat de gebruiker drie kansen heeft om een nummer van 0 t/m 10 te raden. Als de gebruiker het nummer heeft geraden, dan heeft de gebruiker gewonnen. Raad de gebruiker het nummer niet, dan verliest de gebruiker logischerwijs. In dit simpele Java project komen veel basisonderdelen van het programmeren voorbij. Het is leerzaam om ze op deze manier toe te passen. Lees lekker verder!
Het is aan te raden om eerst te begrijpen hoe de basisonderdelen van het programmeren werken. Dan is het makkelijker om dit project volledig te snappen.
In het e-book “Snelcursus Leren Programmeren” leer je de basisonderdelen begrijpen. Voor beginners is het e-book ideaal om de basis van het programmeren te leren. Met basiskennis op zak kan je verder groeien en jezelf specialiseren.
Laten we naar stap 1 gaan!
Stap 1: Ontwikkelomgeving (IDE) installeren
Voordat we de ontwikkelomgeving (IDE) gaan installeren, is het eerst belangrijk om Java te installeren, mocht Java nog niet op je computer geïnstalleerd staan.
Dit is een hele duidelijke video om Java te installeren op Windows 10:
Op YouTube zijn ook goede video’s te vinden om Java op een macOS of ander besturingssysteem te installeren. Staat Java (nu) op je computer geïnstalleerd? Dan kunnen we verder!
Op de website van Eclipse kan je Eclipse downloaden. Kies bij het installeren van Eclipse voor “Eclipse IDE for Java Developers”:
Klik daarna op “Install” om Eclipse te installeren. Tot slot klik je op “Launch”. Eclipse is geopend en we kunnen aan de slag!
Mocht je nog problemen ondervinden bij het installeren van Eclipse, dan kan de volgende video je waarschijnlijk uit de brand helpen, als je Windows gebruikt:
Stap 2: Java project en class aanmaken
Om een nieuw Java project aan te maken in Eclipse, klik je op File > New > Java Project:
Vul daarna een naam voor je project in bij “Project name” en vink “Create module-info.java file” uit. Wij noemen het project “GuessNumber”:
Klik op “Finish” om het project aan te maken. Het project is aangemaakt! We gaan maar één class aanmaken en daar zetten we alle code in. Een class aanmaken is ook niet zo lastig.
Klik eerst met je rechtermuisknop op de “src” map in je project. Daarna klik je op New > Class:
Geef de class een naam bij “Name” en vink “public static void main(String[] args)” aan. Wij noemen de class “Game”:
Klik op “Finish” om de class aan te maken. De class is aangemaakt, we kunnen met het echte werk beginnen en de “Guess number” game gaan maken met Java!
Stap 3: Variables en objecten maken
De main()
method is het beginpunt van een Java programma. Bij het uitvoeren van een Java programma wordt deze method als eerst uitgevoerd.
In de main()
method gaan we al onze code zetten, dus daar beginnen we ook met de variables en objecten. Als eerste kan je // TODO Auto-generated method stub
verwijderen in de main()
method.
We maken de volgende variables en objecten:
import java.util.Random; import java.util.Scanner; public class Game { public static void main(String[] args) { // Random nummer en nummer van gebruiker variables opzetten int randomNummer, gebruikerNummer; // Tellen van beurten variable opzetten int telBeurten = 0; // Object maken van Random class Random random = new Random(); // Random nummer geven aan randomNummer variable (0-10) randomNummer = random.nextInt(11); // Object maken van Scanner class om invoer van gebruiker te krijgen Scanner scanner = new Scanner(System.in); } }
Belangrijk is om de eerste twee regels toe te voegen, zodat de classes geïmporteerd worden. Anders gaan de objecten niet werken. Zoals je ziet in regel 9, kan je in Java variables van hetzelfde data type naast elkaar opzetten, gescheiden door een komma.
In regel 18 zie je dat we met het random
object de nextInt()
method aanroepen. De nextInt()
method zorgt ervoor dat er een int waarde komt tussen 0 en de opgegeven parameter.
We hebben als parameter 11 ingevuld in de nextInt()
method, omdat op deze manier het random nummer een waarde heeft van 0 t/m 10. De waarde start bij 0, dus als je 11 invult, kom je op 0 t/m 10 uit. Stel dat je 10 zou invullen, dan kom je op 0 t/m 9 uit.
In regel 21 zorgt System.in
ervoor dat de invoer van een toetsenbord kan worden gelezen in de console. We hebben deze invoer nodig om later te checken of de gebruiker het nummer goed heeft geraden.
Als je nog niet goed weet wat classes en objecten zijn, dan is het verstandig om eerst dit simpele artikel over object georiënteerd programmeren te lezen.
Stap 4: Do while loop en if statement maken
De do while loop die we maken, ziet er zo uit:
do { } while (randomNummer != gebruikerNummer);
De code binnen do
wordt sowieso minstens één keer uitgevoerd. Daarna wordt de code binnen do
telkens uitgevoerd, zolang de voorwaarde van while
waar is.
Dus zolang het random nummer niet gelijk is aan het ingevoerde nummer van de gebruiker, wordt de code binnen do
uitgevoerd. Dit klopt nog niet helemaal, want we willen de gebruiker maar drie beurten geven.
Daarom gaan we de beurten optellen en checken of de beurten voorbij zijn met een if statement. De volledige code tot nu toe met de do while loop ziet er dan zo uit:
import java.util.Random; import java.util.Scanner; public class Game { public static void main(String[] args) { // Random nummer en nummer van gebruiker variables opzetten int randomNummer, gebruikerNummer; // Tellen van beurten variable opzetten int telBeurten = 0; // Object maken van Random class Random random = new Random(); // Random nummer geven aan randomNummer variable (0-10) randomNummer = random.nextInt(11); // Object maken van Scanner class om invoer van gebruiker te krijgen Scanner scanner = new Scanner(System.in); do { // 1 bij beurt optellen in telBeurten variable telBeurten++; // Als telBeurten gelijk is aan 4 if (telBeurten == 4) { System.out.println("Je beurten zijn helaas voorbij en je hebt verloren."); break; } } while (randomNummer != gebruikerNummer); } }
In regel 28 zie je dat we in het if statement checken of de gebruiker bij de 4e beurt is aangekomen. Als dat zo is, dan geven we aan dat de gebruiker zijn beurten voorbij zijn en dat hij heeft verloren.
Met break
in regel 30 wordt de do while loop afgebroken, als de gebruiker bij de 4e beurt is aangekomen.
Eclipse zal aangeven dat gebruikerNummer
nog moet worden geïnitialiseerd in regel 32. Dit gaan we in de volgende stap doen.
Stap 5: If-else-if statement maken
Voordat we het if-else-if statement toevoegen aan de code, moeten we nog aangeven in de console dat de gebruiker een getal van 0 t/m 10 moet invullen en de waarde van de invoer van de gebruiker opslaan in de gebruikerNummer
variable.
Om dat te doen, kan je de volgende code in do
zetten onder het laatste if statement dat de beurten checkt:
// Aangeven in console dat gebruiker een getal moet invullen System.out.println("Vul een getal in van 0 t/m 10: "); // Waarde van invoer opslaan in gebruikerNummer variable gebruikerNummer = scanner.nextInt();
Je ziet nu ook gelijk in Eclipse dat gebruikerNummer
is geïnitialiseerd. Als laatste voegen we het if-else-if statement toe aan de code. De volledige code ziet er dan zo uit:
import java.util.Random; import java.util.Scanner; public class Game { public static void main(String[] args) { // Random nummer en nummer van gebruiker variables opzetten int randomNummer, gebruikerNummer; // Tellen van beurten variable opzetten int telBeurten = 0; // Object maken van Random class Random random = new Random(); // Random nummer geven aan randomNummer variable (0-10) randomNummer = random.nextInt(11); // Object maken van Scanner class om invoer van gebruiker te krijgen Scanner scanner = new Scanner(System.in); do { // 1 bij beurt optellen in telBeurten variable telBeurten++; // Als telBeurten gelijk is aan 4 if (telBeurten == 4) { System.out.println("Je beurten zijn helaas voorbij en je hebt verloren."); break; } // Aangeven in console dat gebruiker een getal moet invullen System.out.println("Vul een getal in van 0 t/m 10: "); // Waarde van invoer opslaan in gebruikerNummer variable gebruikerNummer = scanner.nextInt(); // Als randomNummer gelijk is aan gebruikerNummer if (randomNummer == gebruikerNummer) { System.out.println("Gefeliciteerd! Je hebt het goed geraden!"); System.out.println("Je hebt er " + telBeurten + " beurt(en) over gedaan."); } // Als randomNummer kleiner is dan gebruikerNummer else if (randomNummer < gebruikerNummer) { System.out.println("Het random nummer is lager dan jouw ingevulde nummer."); } // Als randomNummer groter is dan gebruikerNummer else if (randomNummer > gebruikerNummer) { System.out.println("Het random nummer is hoger dan jouw ingevulde nummer."); } } while (randomNummer != gebruikerNummer); } }
Vanaf regel 40 zie je het if-else-if statement met daarin drie voorwaardes. Het commentaar bij de code en de code zelf maakt duidelijk welke voorwaardes er in het if-else-if statement staan en welke code er wordt uitgevoerd als een voorwaarde waar is.
Dit was alle code van de “Guess number” game met Java! Het is nu tijd om het programma uit te voeren en te testen.
Stap 6: Programma uitvoeren, testen en eventueel aanpassen en/of uitbreiden
Een programma uitvoeren is niet zo lastig binnen Eclipse. Klik op de volgende knop in Eclipse om het programma uit te voeren:
In de console in Eclipse kan je nummers invullen van 0 t/m 10 om de “Guess number” game te testen:
Zijn de testen geslaagd? Dan heb je de “Guess number” game succesvol gemaakt met Java! Echter hoef je niet stil te blijven zitten en kan je de game aanpassen en/of uitbreiden om nog meer te leren.
Om je op weg te helpen, zou je bijvoorbeeld het volgende kunnen aanpassen en/of uitbreiden:
- Gebruiker nummer laten raden van 1 t/m 10
- Foutmelding aan gebruiker geven als gebruiker nummer invult onder de 0 en boven de 10
- Aangeven hoeveel beurten een gebruiker nog over heeft
- Gebruiker naam laten invoeren en bij meldingen aanspreken met zijn naam
- Punten geven als gebruiker nummer goed heeft geraden
Probeer het eens en ga lekker aan de slag! Laat je eigen creatieve brein ook losgaan en probeer om nog meer te leren.
Volledige code op GitHub
Op GitHub staat ook alle code van de “Guess number” game. Dan kan je het nog eens rustig bekijken en eventueel van Github halen.
Ben je nog niet bekend met GitHub? Dan staat er op ProgrammeerPlaats een simpele uitleg over wat GitHub is. Ook kunnen beginners op ProgrammeerPlaats simpel leren werken met GitHub.
Tips om je nog meer te verdiepen in Java
Je hebt nu een “Guess number” (Random number guessing) game gemaakt met Java. Heb je de smaak te pakken en wil je verder gaan met Java leren?
Via boeken en cursussen is het goed mogelijk om je nog meer te verdiepen in Java. De beste boeken over Java voor beginners zijn laagdrempelig om mee te beginnen.
Ben je niet zo van de boeken en meer van de cursussen? Dan staan er op Pluralsight hele goede Java cursussen voor beginners.
In “Pluralsight review en ervaringen” lees je meer over dit platform. Pluralsight is zelfs 10 dagen helemaal gratis uit te proberen.
Ook op Coursera staan goede Java leermogelijkheden voor beginners. In “Coursera review” lees je meer over dit online leerplatform.
Tot slot is het nog een aanrader om zelf eenvoudig een portfolio website te maken als programmeur/developer. Het is niet alleen voor jezelf leuk om je eigen projecten op een portfolio website te zetten, maar je vergroot daarmee ook nog eens je kans op een baan.
Heb je nog vragen en/of opmerkingen? Laat dan hieronder een reactie achter of neem contact op.