Guess number met Java: Simpel project voor beginners!

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”:

Eclipse IDE for Java Developers Eclipse

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:

File > New > Java Project Eclipse

Vul daarna een naam voor je project in bij “Project name” en vink “Create module-info.java file” uit. Wij noemen het project “GuessNumber”:

Create a Java Project Eclipse
Klik op de afbeelding om het te vergroten

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:

New > Class Eclipse

Geef de class een naam bij “Name” en vink “public static void main(String[] args)” aan. Wij noemen de class “Game”:

New Java Class Eclipse
Klik op de afbeelding om het te vergroten

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:

Run Game Eclipse

In de console in Eclipse kan je nummers invullen van 0 t/m 10 om de “Guess number” game te testen:

Console "Guess number" game test Eclipse

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.

GitHub logo

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.

Plaats een reactie