9. Mastermind
Javascript

Inleiding

Mastermind is een klassieker onder de spellen in logisch denken. De ene speler probeert de geheime code van de andere speler
te ontrafelen. De codemaker kiest in het geheim vier code-pionnen en plaatst deze in een gekozen volgorde achter
het zichtschermpje. Het is toegestaan om twee of meer pionnen in dezelfde kleur te kiezen. De codemaker heeft de
keuze uit zes verschillende kleuren. Dit is de verborgen code die de codebreker moet gaan ontrafelen. In zijn beurt
plaatst de codebreker vier code-pionnen naar keuze in de eerste lege rij. Nu geeft de codemaker met de sleutel-pinnen
het resultaat:

  • met rode/zwarte pinnen: hoeveel kleuren staan op de juiste positie?
  • met witte pinnen: hoeveel kleuren komen wel in de code voor, maar staan niet op de juiste positie?
  • Met deze nieuwe informatie plaatst de codebreker vier volgende code-pionnen in de eerstvolgende lege rij. Als de codemaker
    vier rode/zwarte pinnen heeft geplaatst, is de code gekraakt.

    meer info over mastermind

    Opdracht

    Maak het spel mastermind na. Maak eerst een versie waarbij je als mens tegen de computer speelt en waarbij de mens wint
    indien hij binnen twaalf beurten de code kraakt die de computer heeft bedacht. Hier zitten verschillende onderdelen
    in:

  • Je speelt met dit spel tegen de computer. De computer bedenkt een willekeurige combinatie van vier kleuren. De speler (mens)
    dient deze code te kraken in maximaal twaalf beurten. Lukt dit dan wint de speler. Lukt dit niet dan verliest de
    speler van de computer.
  • De computer berekent het aantal pinnen die op de juiste plaats staan en geeft dit weer op het scherm op de juiste rij middels
    rode pinnen.
  • De computer berekent ook het aantal pinnen met de juiste kleur die op de verkeerde plaats staan en geeft dit eveneens
    weer op het scherm op de juiste rij middels witte pinnen
  • Je bent vrij om te kiezen hoe je het spel grafisch weergeeft. Dit kan door middel van een eenvoudige table, maar je kunt
    ook kiezen voor drag and drop en canvas:
  • meer info over drag and drop