probleem bij het controleren van het woord.

Status
Niet open voor verdere reacties.

Azuma

Gebruiker
Lid geworden
8 mrt 2013
Berichten
5
Hallo ik moet het spel boggle ineen knutselen en heb een probleem. elke keer als ik op controleer woord druk dan slaagt het systeem vast.
ziet iemand de fout in de code?

alvast bedankt.

[sql]Boggle swing klasse:

package be.kdg.BoggleProject.Swing;

import be.kdg.BoggleProject.Model.*;
import com.sun.prism.j2d.J2DFontFactory;

import javax.swing.*;
import javax.swing.event.MenuListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.*;

/**
* Olivier De Smet
* Datum: 8/03/13
*/
public class BoggleSpelSwing extends JFrame {
//Objecten
Speler deelnemer = new Speler();
Spel game = new Spel();
Woord word = new Woord();
TopScore highscore = new TopScore();
BordNieuw bord = new BordNieuw();
//Menu
private JMenuBar menuBar;
private JMenu menuSpel;
private JMenuItem itemHelp;
private JMenuItem itemInstelling;
private JMenuItem itemScore;
private JMenuItem itemExit;
//Knoppen
private JButton checkButton;
//IngevenWoord
private TextField woordje;
//letters
private JButton[] letters;
private JPanel stones;
private Font font;
//FeedBack
private JLabel commentaar;
private String score = "";
//User
private JLabel userIdLabel;
private JTextField userIdField;
private JLabel userFeedBack;
private JButton startButton;
private JButton stopButon;

public BoggleSpelSwing() throws HeadlessException {
maakComponenten();
maakLayout();
voegListenersToe();
toonFrame();
}

public void maakComponenten() {
//Menu
this.menuBar = new JMenuBar();
this.menuSpel = new JMenu("Spel");
this.itemHelp = new JMenuItem("Help");
this.itemExit = new JMenuItem("Exit");
this.itemScore = new JMenuItem("Highscores");
this.itemInstelling = new JMenuItem("Instellingen");
//Knoppen
this.checkButton = new JButton("Controleer woord");
//IngevenWoord
this.woordje = new TextField(20);
//Letter
this.letters = new JButton[16];
this.font = new Font("Arial", Font.BOLD, 30);
//Feedback
this.commentaar = new JLabel();
this.commentaar.setText("Hier gaat de commentaar gericht naar de user komen!");
//User
this.userIdLabel = new JLabel("Welkom bij Boggle, gelieve hier je naam in te geven.");
this.userIdField = new JTextField(20);
this.userFeedBack = new JLabel("");
this.startButton = new JButton("Start spel");
this.stopButon = new JButton("Stop");
}

public void maakLayout() {
//Menu
setJMenuBar(menuBar);
menuBar.add(menuSpel);
menuSpel.add(itemInstelling);
menuSpel.add(itemScore);
menuSpel.add(itemHelp);
menuSpel.add(itemExit);
//Knoppen + woord
JPanel check = new JPanel(new FlowLayout(FlowLayout.CENTER));
check.add(woordje);
check.add(checkButton);
this.add(check, BorderLayout.PAGE_END);
//Letters
stones = new JPanel(new GridLayout(4, 4));
this.add(stones, BorderLayout.CENTER);
//Feedback
JPanel feedBack = new JPanel(new FlowLayout(FlowLayout.CENTER));
feedBack.add(commentaar);
this.add(feedBack, BorderLayout.PAGE_START);
//User
JPanel gebruikersInfo = new JPanel(new GridLayout(5, 1));
gebruikersInfo.add(userIdLabel);
gebruikersInfo.add(userIdField);
gebruikersInfo.add(userFeedBack);
gebruikersInfo.add(startButton);
gebruikersInfo.add(stopButon);
this.add(gebruikersInfo, BorderLayout.LINE_START);
}

public void voegListenersToe() {
itemExit.addActionListener(new MenuListener());
itemInstelling.addActionListener(new MenuListener());
itemScore.addActionListener(new MenuListener());
itemHelp.addActionListener(new MenuListener());
stopButon.addActionListener(new StartListener());
checkButton.addActionListener(new StartListener());
startButton.addActionListener(new StartListener());
}

public void toonFrame() {
setTitle("Boggle - by David Eggermont & Olivier De Smet");
setLocation(200, 200);
setVisible(true);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

// inner class
private class StartListener implements ActionListener {
public void actionPerformed(ActionEvent start) {
String woord = woordje.getText();
String user = userIdField.getText();
JButton geklikt = (JButton) start.getSource();
if (geklikt == startButton) {
userFeedBack.setText("Welkom " + user + ", Boggle wordt nu gestart!");
deelnemer.setNaam(user);
startButton.setVisible(false);
userIdLabel.setVisible(false);
userIdField.setVisible(false);

bord.schudBord();

String[] result = new String[16];
int temp = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
result[temp] = String.format("%c", bord.bord[j]);
temp++;
}
}
for (int i = 0; i < 16; i++) {
letters = new JButton(result);
stones.add(letters);
letters.setFont(font);
}

game.zetBeginTijd();


} else if (geklikt == stopButon) {
int myScore = game.getScore();
game.stop();
highscore.naarTopscore();
for (int i=0;i<10;i++) {
score += String.format("%d: \t %s\n", (i + 1), highscore.bekijkHighscore().get(i)); }
JOptionPane.showMessageDialog(null, "Jouw score is:\n" + myScore + "\nHigscores: \n" + score, "Score", JOptionPane.INFORMATION_MESSAGE);

} else if (geklikt == checkButton) {
//while (!game.spelGedaan()) {
if (word.bevatWoord(woord)) {
commentaar.setText("Het woord staat op het bord!");
} else {
commentaar.setText("Fout woord!");
}
java.util.List<String> woordenLijst = new ArrayList<String>();
try {
Scanner input = new Scanner(new FileReader("woordenlijst.txt"));
while (input.hasNextLine()) {
woordenLijst.add(input.nextLine());
}
} catch (FileNotFoundException e) {
commentaar.setText("woordenlijst.txt niet gevonden!");
}

if (woordenLijst.contains(woord)) {
commentaar.setText("Het woord staat in de lijst!");
} else {
commentaar.setText("Het woord staat niet in de lijst!");

}

if (word.bevatWoord(woord) && woordenLijst.contains(woord)) {
if (game.addWoord(woord)) {
commentaar.setText("Het woord is in de lijst gezet!");
} else {
commentaar.setText("Het woord is al gebruikt!");
}
}
}
game.isSpelGedaan();
//}
}
}

private class MenuListener implements ActionListener {
public void actionPerformed(ActionEvent b) {
Color kleur;
Color kleur2;
JMenuItem geklikt = (JMenuItem) b.getSource();
if (geklikt == itemExit) {
System.exit(0);
} else if (geklikt == itemInstelling) {
kleur = JColorChooser.showDialog(stones, "Kies een kleur voor de stenen", Color.BLUE);
kleur2 = JColorChooser.showDialog(stones, "Kies een kleur voor de letters", Color.BLUE);
for (int i = 0; i < 16; i++) {
letters.setBackground(kleur);
letters.setForeground(kleur2);
}
} else if (geklikt == itemHelp) {
JOptionPane.showConfirmDialog(BoggleSpelSwing.this, "HELPPPP!");
} else {
highscore.naarTopscore();
for (int i=0;i<10;i++) {
score += String.format("%d: \t %s\n", (i + 1), highscore.bekijkHighscore().get(i)); }
JOptionPane.showMessageDialog(null, "Hier de top 10 scores: \n" + score, "Highscores", JOptionPane.INFORMATION_MESSAGE);

}
}

}
}

[/sql]
[SQL]package be.kdg.BoggleProject.Model;

public class Woord {
BordNieuw vlak = new BordNieuw();

public boolean bevatWoord(String woord) {
// Kijken of het gegeven woord op het bord zelf staat
for (int i = 0; i < woord.length(); i++) {
//nu checken of woord.charAt(i) ergens in die 2-dim array bord zit
boolean letterGevonden = false; //boolean letterGevonden standaard op false zetten
for (int j=0;j<4;j++) { //for-loop
for (int k=0;k<4;k++) { //for-loop
vlak.schudBord();
if (vlak.getBord()[j][k] == woord.charAt(i)) { //getter voor het bord aanroepen, rijen en kolommen opsplitsen en elke letter apart nakijken
letterGevonden = true; //als de letter gevonden wordt, boolean letterGevonden op true zetten
}
}
}
if (!letterGevonden) return false; //als letterGevonden false is, false teruggeven
}
return true; //als letterGevonden true is, true teruggeven
}
}

[/SQL]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan