Hallo allemaal,
Ik moet een spel programmeren in Java, en heb galgje gekozen. Het probleem is dat ik echt heel erg slecht ben in programmeren, en dat het me totaal niet lukt. Ik heb op het internet gezocht voor aanvullende informatie op mijn boek, maar het heeft allemaal niet geholpen. Donderdag moet ik het spel inleveren, en ik kom er nog altijd niet uit. De docent heeft me voor een deel geholpen, maar ieder nieuw stapje kan ik ook niet maken. Telkens heb ik geen flauw idee hoe ik het voor elkaar moet krijgen. Ik hoop dat jullie me kunnen helpen. Ik heb al een aardig deel van de programmeercode, en zit nu vast na het nascannen van het te raden woord (rwoord) of een ingevoerde letter erin zit, en waar dan. Hierna moet die letter op het juiste puntje ingevuld worden als het in het woord voorkomt, of het getal missers moet met één verhoogd worden en een deel van de galg moet verschijnen.
Dit is de code tot nu toe:
/**
* @(#)Proef.java
* Proef Applet application
* @author
* @version 1.00 2008/3/3
*/
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;
public class Proef extends Applet {
static final int DOOD = 13;
private String rwoord; // het te raden woord
private StringBuffer gwoord;// het geraden woord
private int missers; // globale variabele toegevoegd jonp
private String meldTekst; // globale variabele toegevoegd jonp
private String toelichting; // globale variabele toegevoegd jonp
private int AANTAL = 100000;
// hier wordt de variabele woord gedeclareerd: het is een rij van hooguit 3 String's (jonp)
String[] woord = new String[3];
public void init() {
// hier wordt de variabele woord gevuld (jonp)
woord[0] = "aardbol";
woord[1] = "appelboom";
woord[2] = "agrarisch";
}
//}}
void startKnop_ActionPerformed(java.awt.event.ActionEvent event) {
// declareer een nummer en vul willekeurig met een getal van 0 t/m 2
int RG = (int) (Math.random() * 3);
// haal het te raden woord op
rwoord = woord[RG];
StringBuffer puntjes;
puntjes = new StringBuffer(rwoord);
// en vervang alle tekens in dat woord door een '.'
for (int i = 0; i < rwoord.length(); i++) {
puntjes.setCharAt(i, '.');
}
// gebruik de methode toString() om de inhoud van een StringBuffer
// als String te verkrijgen
woordLabel.setText(puntjes.toString());
meldingLabel.setText("Raad een letter");
}
void raadKnop_ActionPerformed(java.awt.event.ActionEvent event) {
String letter = raadVeld.getText();
// raadVeld.getText();
raadVeld.setText("");
// String letter;
StringBuffer geradenletters = new StringBuffer();
while (missers < 13 && !woord.equals(rwoord)) {
int index = 0;
meldingLabel.setText("Voer een letter in: ");
//geraden letter
if ((rwoord.indexOf(letter)) != (-1)) // index van het gevonden karakter bewaren
{
StringBuffer puntjes = new StringBuffer(woordLabel.getText());
for (int i = 0; i < rwoord.length(); i++) {
if (rwoord.charAt(i) == letter.charAt(0))// elke verschijning van de juiste letter vinden
{
puntjes.setCharAt(i, letter.charAt(0));
}
else
{
puntjes.setCharAt(i, '.');
missers++;
int pogingen = 13 - missers;
}
}
rwoord.indexOf(letter);
toelichtingLabel.getText("");
toelichtingLabel.setText("Deze letter is goed!");
meldingLabel.setText("Je hebt " + pogingen + " poging(en) over.");
} //verkeerd geraden woord
else {
missers++;
meldingLabel.setText("");
toelichtingLabel.setText("Je hebt " + missers + "over");
}
if (missers == DOOD) {
meldingLabel.setText("Je hebt het woord niet geraden, Je hangt!");
toelichtingLabel.setText("Het te raden woord was: " + rwoord);
}
}
}
// alles wat getekend moet worden moet in de methode Paint staan
public void Paint(Graphics g) {
int baseY = 250;
if (missers > 0) { // grond
g.drawLine(90, baseY, 200, baseY);
}
if (missers > 1) { // balk omhoog
g.drawLine(125, baseY, 125, baseY - 100);
}
if (missers > 2) {
g.drawLine(110, baseY, 125, baseY - 15);
}
if (missers > 3) {
g.drawLine(140, baseY, 125, baseY - 15);
}
if (missers > 4) { // zijbalk
g.drawLine(125, baseY - 100, 175, baseY - 100);
}
if (missers > 5) {
g.drawLine(125, baseY - 85, 140, baseY - 100);
}
if (missers > 6) { // het touw
g.drawLine(175, baseY - 100, 175, baseY - 75);
}
if (missers > 7) { // lichaam
g.drawOval(170, baseY - 75, 10, 12);
}
if (missers > 8) {
g.drawOval(170, baseY - 65, 15, 25);
}
if (missers > 9) { // armen
g.drawLine(160, baseY - 65, 170, baseY - 60);
}
if (missers > 10) {
g.drawLine(183, baseY - 60, 193, baseY - 65);
}
if (missers > 11) { // benen
g.drawLine(165, baseY - 30, 170, baseY - 45);
}
if (missers > 12) {
g.drawLine(183, baseY - 45, 193, baseY - 30);
}
// Toon de meldingen.
g.drawString(meldTekst, 50, baseY + 25);
g.drawString(toelichting, 25, baseY + 45);
}
}
Alvast heel erg bedankt voor de hulp.
Ik moet een spel programmeren in Java, en heb galgje gekozen. Het probleem is dat ik echt heel erg slecht ben in programmeren, en dat het me totaal niet lukt. Ik heb op het internet gezocht voor aanvullende informatie op mijn boek, maar het heeft allemaal niet geholpen. Donderdag moet ik het spel inleveren, en ik kom er nog altijd niet uit. De docent heeft me voor een deel geholpen, maar ieder nieuw stapje kan ik ook niet maken. Telkens heb ik geen flauw idee hoe ik het voor elkaar moet krijgen. Ik hoop dat jullie me kunnen helpen. Ik heb al een aardig deel van de programmeercode, en zit nu vast na het nascannen van het te raden woord (rwoord) of een ingevoerde letter erin zit, en waar dan. Hierna moet die letter op het juiste puntje ingevuld worden als het in het woord voorkomt, of het getal missers moet met één verhoogd worden en een deel van de galg moet verschijnen.
Dit is de code tot nu toe:
/**
* @(#)Proef.java
* Proef Applet application
* @author
* @version 1.00 2008/3/3
*/
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;
public class Proef extends Applet {
static final int DOOD = 13;
private String rwoord; // het te raden woord
private StringBuffer gwoord;// het geraden woord
private int missers; // globale variabele toegevoegd jonp
private String meldTekst; // globale variabele toegevoegd jonp
private String toelichting; // globale variabele toegevoegd jonp
private int AANTAL = 100000;
// hier wordt de variabele woord gedeclareerd: het is een rij van hooguit 3 String's (jonp)
String[] woord = new String[3];
public void init() {
// hier wordt de variabele woord gevuld (jonp)
woord[0] = "aardbol";
woord[1] = "appelboom";
woord[2] = "agrarisch";
}
//}}
void startKnop_ActionPerformed(java.awt.event.ActionEvent event) {
// declareer een nummer en vul willekeurig met een getal van 0 t/m 2
int RG = (int) (Math.random() * 3);
// haal het te raden woord op
rwoord = woord[RG];
StringBuffer puntjes;
puntjes = new StringBuffer(rwoord);
// en vervang alle tekens in dat woord door een '.'
for (int i = 0; i < rwoord.length(); i++) {
puntjes.setCharAt(i, '.');
}
// gebruik de methode toString() om de inhoud van een StringBuffer
// als String te verkrijgen
woordLabel.setText(puntjes.toString());
meldingLabel.setText("Raad een letter");
}
void raadKnop_ActionPerformed(java.awt.event.ActionEvent event) {
String letter = raadVeld.getText();
// raadVeld.getText();
raadVeld.setText("");
// String letter;
StringBuffer geradenletters = new StringBuffer();
while (missers < 13 && !woord.equals(rwoord)) {
int index = 0;
meldingLabel.setText("Voer een letter in: ");
//geraden letter
if ((rwoord.indexOf(letter)) != (-1)) // index van het gevonden karakter bewaren
{
StringBuffer puntjes = new StringBuffer(woordLabel.getText());
for (int i = 0; i < rwoord.length(); i++) {
if (rwoord.charAt(i) == letter.charAt(0))// elke verschijning van de juiste letter vinden
{
puntjes.setCharAt(i, letter.charAt(0));
}
else
{
puntjes.setCharAt(i, '.');
missers++;
int pogingen = 13 - missers;
}
}
rwoord.indexOf(letter);
toelichtingLabel.getText("");
toelichtingLabel.setText("Deze letter is goed!");
meldingLabel.setText("Je hebt " + pogingen + " poging(en) over.");
} //verkeerd geraden woord
else {
missers++;
meldingLabel.setText("");
toelichtingLabel.setText("Je hebt " + missers + "over");
}
if (missers == DOOD) {
meldingLabel.setText("Je hebt het woord niet geraden, Je hangt!");
toelichtingLabel.setText("Het te raden woord was: " + rwoord);
}
}
}
// alles wat getekend moet worden moet in de methode Paint staan
public void Paint(Graphics g) {
int baseY = 250;
if (missers > 0) { // grond
g.drawLine(90, baseY, 200, baseY);
}
if (missers > 1) { // balk omhoog
g.drawLine(125, baseY, 125, baseY - 100);
}
if (missers > 2) {
g.drawLine(110, baseY, 125, baseY - 15);
}
if (missers > 3) {
g.drawLine(140, baseY, 125, baseY - 15);
}
if (missers > 4) { // zijbalk
g.drawLine(125, baseY - 100, 175, baseY - 100);
}
if (missers > 5) {
g.drawLine(125, baseY - 85, 140, baseY - 100);
}
if (missers > 6) { // het touw
g.drawLine(175, baseY - 100, 175, baseY - 75);
}
if (missers > 7) { // lichaam
g.drawOval(170, baseY - 75, 10, 12);
}
if (missers > 8) {
g.drawOval(170, baseY - 65, 15, 25);
}
if (missers > 9) { // armen
g.drawLine(160, baseY - 65, 170, baseY - 60);
}
if (missers > 10) {
g.drawLine(183, baseY - 60, 193, baseY - 65);
}
if (missers > 11) { // benen
g.drawLine(165, baseY - 30, 170, baseY - 45);
}
if (missers > 12) {
g.drawLine(183, baseY - 45, 193, baseY - 30);
}
// Toon de meldingen.
g.drawString(meldTekst, 50, baseY + 25);
g.drawString(toelichting, 25, baseY + 45);
}
}
Alvast heel erg bedankt voor de hulp.