Hoi allemaal,
Ik moet voor school een programma schrijven over wakken en ijsberen.
Dit is een spelletje waarbij de punten op een dobbelsteen ijsberen of wakken voorstellen.
Maar de dobbelstenen moet ik eerst schrijven. Dit heb ik inmiddels gedaan en deze komen ook op het scherm en als je werp klikt veranderen ze ook. (Ik heb verder nog geen vak gemaakt waarin je kunt kiezen hoeveel dobbelstenen erzijn). Maar mijn probleem is nou dat de dobbelsteen af en toe niks weer geeft en ik snap niet waarom kan iemand de fout in de code aanwijzen?
De Klasse dobbelsteen
Het Paneel
Het algoritme voor het spel en dat er minimaal 3 en maximaal 8 stenen mee kunnen doen moet ik nog schrijven maar ik wil eerst deze fout eruit voor ik verder ga.
We moeten alles wel een beetje volgens het boek "en dan is er java doen".
Bij voorbaat dank,
Gerben
Ik moet voor school een programma schrijven over wakken en ijsberen.
Dit is een spelletje waarbij de punten op een dobbelsteen ijsberen of wakken voorstellen.
Maar de dobbelstenen moet ik eerst schrijven. Dit heb ik inmiddels gedaan en deze komen ook op het scherm en als je werp klikt veranderen ze ook. (Ik heb verder nog geen vak gemaakt waarin je kunt kiezen hoeveel dobbelstenen erzijn). Maar mijn probleem is nou dat de dobbelsteen af en toe niks weer geeft en ik snap niet waarom kan iemand de fout in de code aanwijzen?
De Klasse dobbelsteen
Code:
import java.awt.*;
public class Dobbelsteen{
private int x, y;
public Dobbelsteen(int x){
this.x = x;
y = 50*x;
}
//methoden
public void tekenStenen(Graphics g){
// Teken de dobbelsteen
g.setColor( Color.WHITE );
g.fillRoundRect((y), 55, 60, 60, 25, 25 );
g.setColor( Color.BLACK );
g.drawRoundRect((y), 55, 60, 60, 25, 25 );
}
public void tekenOgen(Graphics g){
if (gooi() == 1){
g.fillOval((y+25), 80, 8, 8);
}
else if (gooi() == 2){
g.fillOval((y+5), 60, 8, 8);
g.fillOval((y+45), 100, 8, 8);
}
else if (gooi() == 3){
g.fillOval((y+25), 80, 8, 8);
g.fillOval((y+5), 60, 8, 8);
g.fillOval((y+45), 100, 8, 8);
}
else if (gooi() == 4){
g.fillOval((y+5), 60, 8, 8);
g.fillOval((y+45), 100, 8, 8);
g.fillOval((y+5), 100, 8, 8);
g.fillOval((y+45), 60, 8, 8);
}
else if (gooi() == 5){
g.fillOval((y+25), 80, 8, 8);
g.fillOval((y+5), 60, 8, 8);
g.fillOval((y+45), 100, 8, 8);
g.fillOval((y+5), 100, 8, 8);
g.fillOval((y+45), 60, 8, 8);
}
else if (gooi() == 6){
g.fillOval((y+5), 60, 8, 8);
g.fillOval((y+45), 100, 8, 8);
g.fillOval((y+5), 100, 8, 8);
g.fillOval((y+45), 60, 8, 8);
g.fillOval((y+5), 80, 8, 8);
g.fillOval((y+45), 80, 8, 8);
}
}
public int gooi(){
return (int) (6 * Math.random() + 1);
}
}
Het Paneel
Code:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class Paneel extends JFrame{
public static void main(String args[]){
JFrame frame = new Paneel();
frame.setSize(600,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Een Dobbelsteen");
frame.setContentPane(new TekenPaneel());
frame.setVisible(true);
}
}
class TekenPaneel extends JPanel{
private Dobbelsteen steen1, steen2;
private JButton werpKnop;
//constructor
public TekenPaneel(){
setLayout(null);
steen1=new Dobbelsteen(1);
steen2=new Dobbelsteen(3);
werpKnop = new JButton();
werpKnop.setText("Werp!");
werpKnop.setBounds(50,150,70,25);
werpKnop.addActionListener(new WerpKnopHandler());
add (werpKnop);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
steen1.tekenStenen(g);
steen1.tekenOgen(g);
steen2.tekenStenen(g);
steen2.tekenOgen(g);
}
class WerpKnopHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
steen1.gooi();
repaint();
}
}
}
Het algoritme voor het spel en dat er minimaal 3 en maximaal 8 stenen mee kunnen doen moet ik nog schrijven maar ik wil eerst deze fout eruit voor ik verder ga.
We moeten alles wel een beetje volgens het boek "en dan is er java doen".
Bij voorbaat dank,
Gerben