Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Huiswerkvragen: Exacte vakken (https://forum.scholieren.com/forumdisplay.php?f=17)
-   -   rad van fortuin in java (https://forum.scholieren.com/showthread.php?t=260071)

sanne_312 26-10-2002 19:12

rad van fortuin in java
 
Hoi ik heb een probleem met java,
Ik moet een woordraadpgrammaatje in java doen.

In een tekstvak verschijnt het woord dit "## ### ## ## ####".
Als ik een van de letters raad dan moet er dit verschijnen:
"e# ### ## e# ####". Als ik dan nog een (juiste) letter raad, verdwijnt de e en ontstaat alleen de nieuwe letter. Hoe kan ik ervoor zorgen dat de al geraden letters er blijven staan.

Dwarfie 26-10-2002 19:18

Of je slaat de goed geraden letters ergens op en dan draai je iedere keer weer alle vakjes om, waarvan de letters al geraden zijn, óf je slaat de #'jes + goede letters op en dan voeg je de nieuwe goed geraden letter er aan toe?

sanne_312 26-10-2002 20:32

Bedankt, het is gelukt. Maar ik heb nog een probleem.
Je kunt als je al een paar letters hebt het antwoord weten, stel dat je het antwoord dan fout intypt, dan moet je weer de oorspronkelijke situatie krijgen (voordat je het foute antwoord intypte), dus weer met de letters die je al geraden hebt.

sanne_312 26-10-2002 20:33

Hoe doe je dat?

Just Johan 26-10-2002 20:54

Citaat:

sanne_312 schreef:
Hoe doe je dat?
je moet zorgen dat je het raden naar het woord (in plaats van naar een letter) in een ander ding opslaat dan waar het speelveld (=het rijtje dat eerst uit hekjes bestaat en langzaam het woord wordt) in opgeslagen ligt.

Just Johan 26-10-2002 21:18

Ik heb er even een qbasic-programmaatje van gemaakt (ik heb nog nooit java gedaan :o) en dat is iets makkelijker te begrijpen dan c++ misschien.

Code:

TeRadenWoord$ = "java is leuk"
Speelveld$ = "#### ## ####"

welkom:
CLS : PRINT "Welkom bij het Rad van Fortuin!"

DO WHILE TeRadenWoord$ <> Speelveld$
  GOSUB showscherm
  GOSUB vraagomletter
  GOSUB zoekletter
LOOP

klaar:
PRINT : PRINT "Gefeliciteerd!!! :D"
PRINT : PRINT "Nogmaals? (j/n)"
keuze$ = INPUT$(1)
IF keuze$ = "j" THEN
  GOTO welkom
ELSE
  PRINT "Dag!": END
END IF

showscherm:
  PRINT : PRINT "Je hebt nu: "; Speelveld$
RETURN

vraagomletter:
  INPUT "Welke letter?: ", Letter$
RETURN

zoekletter:
  tel = 0
  FOR bekijk = 1 TO LEN(TeRadenWoord$)
    IF MID$(TeRadenWoord$, bekijk, 1) = Letter$ THEN
      MID$(Speelveld$, bekijk, 1) = Letter$
      tel = tel + 1
    END IF
  NEXT bekijk
  PRINT "Die zit er"; tel; "keer in!"
RETURN


eddie 27-10-2002 12:54

Citaat:

sanne_312 schreef:
Bedankt, het is gelukt. Maar ik heb nog een probleem.
Je kunt als je al een paar letters hebt het antwoord weten, stel dat je het antwoord dan fout intypt, dan moet je weer de oorspronkelijke situatie krijgen (voordat je het foute antwoord intypte), dus weer met de letters die je al geraden hebt.

*vraagt zich af hoe JAVA ook alweer ging*
uhm...
*weet niet*

In psuedo code dan maar ;)
(nouja... psuedo code... ik weet zelfs niet meer hoe dat moest... :o)
----
cZin = "Dit raad je nooit"
cDisplay = Alle karakters in cZin vervangen door '#' (behalve de spaties)


cGekozenLetter = gekozen letter
zoek cZin af naar de gekozen letter en vervang in cDipslay het overeenkomende karakterpositie.


Bijvoorbeeld:
Code:

cGekozenLetter = 'a';
for( int i = 0; i < len( cZin ); i++)
{
  if( cZin[i] == cGekozenLetter ){ cDisplay[i] = cGekozenLetter;}
}

cGekozenZin = gekozen zin
vergelijk cZin met cGekozenZin. Indien hetzelfde maak cDisplay gelijk aan cZin, anders doe niks.


Laat na iedere invoer cDisplay zien.
----

Just Johan 27-10-2002 13:06

oh sorry wat dom van mij; ik had vergeten de mogelijkheid in te bouwen het hele woord in een keer te raden en daar ging het juist om :o

een aangepaste versie dan:
Code:

TeRadenWoord$ = "java is leuk"
Speelveld$ = "#### ## ####"

welkom:
CLS : PRINT "Welkom bij het Rad van Fortuin!"

DO WHILE TeRadenWoord$ <> Speelveld$
  GOSUB showscherm
  GOSUB vraagomletter
  IF letter$ = "*" THEN
    GOSUB vraagwoord
  ELSE
    GOSUB zoekletter
  END IF
LOOP

klaar:
PRINT : PRINT "Gefeliciteerd!!! :D"
PRINT : PRINT "Nogmaals? (j/n)"
keuze$ = INPUT$(1)
IF keuze$ = "j" THEN
  GOTO welkom
ELSE
  PRINT "Dag!": END
END IF

showscherm:
  PRINT : PRINT "Je hebt nu: "; Speelveld$
RETURN

vraagomletter:
  INPUT "Welke letter? (* om hele woord te raden): ", letter$
RETURN

vraagwoord:
  INPUT "Wat denk je dat het woord is?: ", Gok$
  IF Gok$ = TeRadenWoord$ THEN
    Speelveld$ = Gok$
  ELSE
    PRINT "Dat is helaas niet goed :("
  END IF
RETURN

zoekletter:
  tel = 0
  FOR bekijk = 1 TO LEN(TeRadenWoord$)
    IF MID$(TeRadenWoord$, bekijk, 1) = letter$ THEN
      MID$(Speelveld$, bekijk, 1) = letter$
      tel = tel + 1
    END IF
  NEXT bekijk
  PRINT "Die zit er"; tel; "keer in!"
RETURN



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

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