import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

public class Mastermind extends JFrame {
    private JButton[][] knoppen = new JButton[10][10];
    private int[][] kleuren = new int[10][10];
    private int[] oplossing = new int[5];
    private int test = 1;
    private int pinkleur = 0;
    private int spelfase = 0;
    private Color[] kleur = {Color.ORANGE, Color.GREEN, Color.RED, Color.BLUE, Color.YELLOW, new Color(178, 72, 198)};
    private JButton buttontest;
    private JLabel labelsf;
    
    public Mastermind() {
        setTitle("Mastermind versie 2.2");
        setSize(340, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(null);
        getContentPane().setBackground(new Color(204, 153, 0));
        
        genereerOplossing();
        
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 8; j++) {
                JButton knop = new JButton();
                knop.setBounds((i * 40) + 30, (j * 40) + 80, 30, 30);
                knop.setBackground(kleur[0]);
                knop.addActionListener(new KnopListener(i, j));
                add(knop);
                knoppen[i][j] = knop;
                kleuren[i][j] = 0;
            }
        }
        
        buttontest = new JButton("Test");
        buttontest.setBounds(270, (test * 40) + 40, 60, 30);
        buttontest.setBackground(Color.RED);
        buttontest.addActionListener(e -> testen());
        add(buttontest);
        
        labelsf = new JLabel("Kies een kleur hieronder:");
        labelsf.setBounds(10, 400, 200, 30);
        add(labelsf);
        
        setVisible(true);
    }

    private void genereerOplossing() {
        Random rand = new Random();
        for (int i = 0; i < 5; i++) {
            oplossing[i] = rand.nextInt(5) + 1;
        }
    }

    private class KnopListener implements ActionListener {
        private int x, y;

        public KnopListener(int x, int y) {
            this.x = x;
            this.y = y;
        }

        @Override
        public void actionPerformed(ActionEvent e) {
            if (y == 9) {
                pinkleur = x;
            } else {
                kleuren[x][y] = pinkleur;
                knoppen[x][y].setBackground(kleur[pinkleur]);
            }
        }
    }

    private void testen() {
        int wit = 0;
        int zwart = 0;
        int[] grijs = new int[5];
        for (int i = 0; i < 5; i++) {
            grijs[i] = kleuren[i][test - 1];
            if (grijs[i] == oplossing[i]) {
                wit++;
            }
        }
        // Simpele evaluatie van zwarte pinnen
        zwart = Math.max(0, Math.min(5, zwart));
        
        if (wit == 5) {
            labelsf.setText("GEWONNEN");
            buttontest.setEnabled(false);
        }
        if (test == 9) {
            labelsf.setText("VERLOREN");
            buttontest.setEnabled(false);
        }
        test++;
    }

    public static void main(String[] args) {
        new Mastermind();
    }
}
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; public class Mastermind extends JFrame { private JButton[][] knoppen = new JButton[10][10]; private int[][] kleuren = new int[10][10]; private int[] oplossing = new int[5]; private int test = 1; private int pinkleur = 0; private int spelfase = 0; private Color[] kleur = {Color.ORANGE, Color.GREEN, Color.RED, Color.BLUE, Color.YELLOW, new Color(178, 72, 198)}; private JButton buttontest; private JLabel labelsf; public Mastermind() { setTitle(“Mastermind versie 2.2”); setSize(340, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(null); getContentPane().setBackground(new Color(204, 153, 0)); genereerOplossing(); for (int i = 0; i < 5; i++) { for (int j = 0; j < 8; j++) { JButton knop = new JButton(); knop.setBounds((i * 40) + 30, (j * 40) + 80, 30, 30); knop.setBackground(kleur[0]); knop.addActionListener(new KnopListener(i, j)); add(knop); knoppen[i][j] = knop; kleuren[i][j] = 0; } } buttontest = new JButton("Test"); buttontest.setBounds(270, (test * 40) + 40, 60, 30); buttontest.setBackground(Color.RED); buttontest.addActionListener(e -> testen()); add(buttontest); labelsf = new JLabel(“Kies een kleur hieronder:”); labelsf.setBounds(10, 400, 200, 30); add(labelsf); setVisible(true); } private void genereerOplossing() { Random rand = new Random(); for (int i = 0; i < 5; i++) { oplossing[i] = rand.nextInt(5) + 1; } } private class KnopListener implements ActionListener { private int x, y; public KnopListener(int x, int y) { this.x = x; this.y = y; } @Override public void actionPerformed(ActionEvent e) { if (y == 9) { pinkleur = x; } else { kleuren[x][y] = pinkleur; knoppen[x][y].setBackground(kleur[pinkleur]); } } } private void testen() { int wit = 0; int zwart = 0; int[] grijs = new int[5]; for (int i = 0; i < 5; i++) { grijs[i] = kleuren[i][test - 1]; if (grijs[i] == oplossing[i]) { wit++; } } // Simpele evaluatie van zwarte pinnen zwart = Math.max(0, Math.min(5, zwart)); if (wit == 5) { labelsf.setText("GEWONNEN"); buttontest.setEnabled(false); } if (test == 9) { labelsf.setText("VERLOREN"); buttontest.setEnabled(false); } test++; } public static void main(String[] args) { new Mastermind(); } }

Nieuwsbrief updates

Vul hieronder je e-mailadres in om je in te schrijven voor onze nieuwsbrief