import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@SuppressWarnings("serial")
{
private int lucifers;
private boolean player1 = false;
private boolean player2 = false;
private boolean ai = false; // TODO:
/**
* Default Constructor
*/
public lucifer()
{
this.buildGui(); // bouw Gui (frame, panels and buttons)
}
public static void main
(String[] args
) {
lucifer game = new lucifer();
frame.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE); frame.add(game);
frame.setSize(700, 300);
frame.setVisible(true);
}
/**
* Build Game Gui
*/
private void buildGui()
{
this.
buttonPanel = new JPanel();
this.b1.setEnabled(false);
this.b1.addActionListener(this);
this.b2.setEnabled(false);
this.b2.addActionListener(this);
this.b3.setEnabled(false);
this.b3.addActionListener(this);
this.start.addActionListener(this);
this.
tekst = new JLabel( "Druk op Start om te Beginnen");
this.buttonPanel.add(this.b1);
this.buttonPanel.add(this.b2);
this.buttonPanel.add(this.b3);
this.buttonPanel.add(this.start);
this.buttonPanel.add(this.tekst);
}
/**
* Zet de lucifers op het scherm
*/
{
//System.out.println("DEBUG: Painting");
super.paintComponent(g);
for(int i = 0 ; i < this.lucifers ; i++)
{
g.
setColor(new Color(106,
53,
0)); // teken het stokje g.fillRect((i+1) * 20, 80, 3, 75);
g.
setColor(new Color(255,
0,
0)); // teken het lucifer kopje g.fillOval(( (i+1) * 20) -3, 71, 9, 9);
g.drawString(" " + (i+1), ( (i+1) * 20) -3, 175);
}
}
/**
* Acties worden hier uitgevoerd na het drukken op een knop
*/
{
// is er op de start knop gedrukt?
if(a.getSource() == this.start)
{
this.lucifers = 21;
this.player1 = true; // speler 1 begint TODO: laat spelers kiezen wie er begint
this.start.setEnabled(false); // zet start knop uit
this.b1.setEnabled(true); // zet b1,b2,b3 knoppen weer aan
this.b2.setEnabled(true);
this.b3.setEnabled(true);
this.tekst.setText("Speler 1 Begint, Klik op 1, 2 of 3 om een lucifer te pakken");
revalidate();
repaint();
}
else if(a.getSource() == this.b1)
{
this.lucifers--; // haal 1 lucifer weg
revalidate();
repaint();
}
else if(a.getSource() == this.b2)
{
this.lucifers -= 2; // haal 2 lucifers weg
revalidate();
repaint();
}
else if(a.getSource() == this.b3)
{
this.lucifers -= 3; // haal 3 lucifers weg
revalidate();
repaint();
}
this.move();
//System.out.println("DEBUG: " + this.lucifers);
}
public void move()
{
if(this.lucifers <= 1)
{
if(this.player1 == true)
{
JOptionPane.
showMessageDialog(this,
"Speler 1 heeft het spel verloren."); }
else if(this.player2 == true)
{
JOptionPane.
showMessageDialog(this,
"Speler 2 heeft het spel verloren."); }
this.start.setEnabled(true); // zet start knop uit
this.b1.setEnabled(false); // zet b1,b2,b3 knoppen weer aan
this.b2.setEnabled(false);
this.b3.setEnabled(false);
}
else
{
if(this.player1 == true)
{
this.player1 = false;
this.player2 = true;
this.tekst.setText("Speler 2 is aan de beurt");
}
else if(this.player2 == true)
{
this.player1 = true;
this.player2 = false;
this.tekst.setText("Speler 1 is aan de beurt");
}
}
}
}