Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Prog] Java: programma geeft vastloper (https://forum.scholieren.com/showthread.php?t=1164651)

knijtert! 26-04-2005 21:09

[java] vastloper.... heeft te maken met replace/substring
 
Ik ben galgje aan het maken...

en nou heb ik een loop gemaakt die nagaat of de ingevoerde letter in het woord voorkomt, dat werkt als het goed is.

Alleen nu weet ik niet hoe je die ingevoerde letter op de juiste plaats zet in een andere string...

Je moet de methode replace() gebruiken of de methode substring() naar ik aanneem... Nou is de vraag... welke van de 2 en hoe dan? :bloos:

Manuzhai 26-04-2005 21:39

Kan je een stukje code laten zien?

knijtert! 26-04-2005 22:07

Citaat:

Manuzhai schreef op 26-04-2005 @ 22:39 :
Kan je een stukje code laten zien?
een heel langstukje :p

Het gaat vooral om de methode gokLetter()

Code:

public class Hoofdstuk7 extends Applet {
    String[] woordjes = { "aap", "stoel", "tafel", "computer", "voetbal"};
    String invoerLetter, gekozenWoord, gekozenWoordTemp;
    int kies, lengte;
    int count = 0;

    Label lblTijdelijk, lblJuisteLetters;

    Button knopStartGok, knopRestart;
    TextField invoervak;

    public void init() {

        knopStartGok = new Button ( "  Start  " );
        knopStartGok.addActionListener ( new KnopStartGokHandler() );

        knopRestart = new Button ( "restart" );

        invoervak = new TextField ( " " );
        invoervak.setEnabled( false );

        lblJuisteLetters = new Label ( " " );
        lblTijdelijk = new Label ( "                        " );

        add ( knopStartGok );

        add ( invoervak );

        add ( lblTijdelijk );
        add ( lblJuisteLetters );
    }

    public void startGalgje(){
        knopStartGok.setLabel( "Gok nu!" );

        kies = (int) ( 5 * Math.random());
        gekozenWoord = woordjes[kies];
        lengte = woordjes[kies].length();

        invoervak.setEnabled( true );

        lblTijdelijk.setText( "  " + woordjes[kies] + " " + lengte  );
    }

    public void gokLetter(){
        int i;
        char invoerch = invoerLetter.charAt( 0 );

        invoerLetter = invoervak.getText();


        for (i = 0 ; i < lengte;  i++ ){
            char ch = woordjes[kies].charAt( i );
            if( ch == invoerch ){

                System.out.println( true ); //test
            }
        }

        invoervak.setText("");
    }


    class KnopStartGokHandler implements ActionListener
    {
        public void actionPerformed( ActionEvent e )
        {
            if (count == 0){
                startGalgje();
                count = 1;
            }
            else if(count == 1){
                invoerLetter = invoervak.getText();
                lblTijdelijk.setText( " " + invoerLetter);
                gokLetter();
            }

        }
    }
}


knijtert! 27-04-2005 01:01

Het is gelukt... 1 bugje...
de eerste keer datje op Gok! drukt werkt hij niet :s
Pas vanaf poging 2 zie je resultaat :|

Code:

public class Hoofdstuk7 extends Applet {
    String[] woordjes = { "aap", "stoel", "tafel", "computer", "voetbal"};
    String invoerLetter, gekozenWoord, gekozenWoordTemp;
    int kies, lengte;
    int count = 0;

    Label lblTijdelijk, lblJuisteLetters;

    Button knopStartGok, knopRestart;
    TextField invoervak;

    public void init() {

        knopStartGok = new Button ( "  Start  " );
        knopStartGok.addActionListener ( new KnopStartGokHandler() );

        knopRestart = new Button ( "restart" );

        invoervak = new TextField ( " " );
        invoervak.setEnabled( false );

        lblJuisteLetters = new Label ( "                  " );
        lblTijdelijk = new Label ( "                                " );

        add ( knopStartGok );

        add ( invoervak );

        add ( lblTijdelijk );
        add ( lblJuisteLetters );
    }

    public void startGalgje(){
        knopStartGok.setLabel( "Gok nu!" );

        kies = (int) ( 5 * Math.random());
        gekozenWoord = woordjes[kies];
        lengte = woordjes[kies].length();

        if( lengte == 3 ){ gekozenWoord = "___"; }
        if( lengte == 5 ){ gekozenWoord = "_____"; }
        if( lengte == 7 ){ gekozenWoord = "_______"; }
        if( lengte == 8 ){ gekozenWoord = "________"; }
        gekozenWoordTemp = gekozenWoord;

        invoervak.setEnabled( true );

        lblTijdelijk.setText( "  " + woordjes[kies] + " " + lengte  );
        lblJuisteLetters.setText( "" + gekozenWoord );

    }

    public void gokLetter(){
        int i;
        char invoerch = invoerLetter.charAt( 0 );

        invoerLetter = invoervak.getText();


        for (i = 0 ; i < lengte;  i++ ){
            char ch = woordjes[kies].charAt( i );
            if( ch == invoerch ){

                gekozenWoord = gekozenWoordTemp.substring(0, i) + ch + gekozenWoordTemp.substring(i + 1, lengte);
                gekozenWoordTemp = gekozenWoord;

                lblJuisteLetters.setText( "" + gekozenWoord );
                repaint();
            }
        }
        invoervak.setText("");
    }


    class KnopStartGokHandler implements ActionListener
    {
        public void actionPerformed( ActionEvent e )
        {
            if (count == 0){
                startGalgje();
                count = 1;
            }
            else if(count == 1){
                invoerLetter = invoervak.getText();
                lblTijdelijk.setText( " " + invoerLetter + "  " );
                gokLetter();
            }

        }
    }
}



Alle tijden zijn GMT +1. Het is nu 18:01.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.