Sinds een tijdje ben ik bezig met het woordspelletje Lingo. Je weet wel, dat ene met die woorden en getallen. Nu kom ik daar een heel eind mee met de "foute" en de "goede" letters. Het enige wat nog ontbreekt zijn de "halve" letters.
1 voor het te raden woord
2 voor de poging van het te raden woord
3 letter helpen, die bijhoud wat de status is tussen elke gelijke posities van 1 en 2.
Verder heb ik:
Een array van 5x5 voor de te kleuren vakjes (genummerd van 01 tot en met 25)..
Een array van 5x5 voor de in te vullen letters (genummerd van 01 tot en met 25).
Een variable die bijhoud wat de huidige letter is [l]
Een variabele die bijhoud wat de huidige rij is.
Voorbeeld:
Het te raden woord; LINGO.
Je doet een poging met: OODLE
Wat er vervolgens gebeurd is dat alle 2 de "o" geel word, omdat die dus ergens anders in het woord voorkomen. De derde array word ook [H][H][F][H][F].
Wat ik geprobeerd heb:
Dit resulteerde dat er GEEN gele letters meer tevoorschijn kwamen, dus dat is helaas niet wat de bedoeling was.
Vraag:
Hoe kan ik een check laten uitvoeren die controleert bij het 'kleuren' van de letters of een "[H]" ook nog wel zo is of dat deze niet nog een keer in het woord voorkomt en dus er voor zorgd dat de eerste "o" geel maakt, maar de tweede blauw (fout) doordat deze niet ook nog in het woord zit?
Gebruik visual studio voor de code en C# als programmeertaal.
- Goede letters: Zijn dus goed geraden voor zowel de plaats als de letter.[G]
- [i]Controleer ik door te kijken of de gekozen letter op dezelfde plaats in het woord zit.[/i]
- Halve letters; Zijn wel geraden, zitten in het woord, alleen op een andere plaats. Dit geeft aan hoeveel van dezelfde letter er nog een keer ergens anders in het woord voorkomt. [H]
- [i]Controleer ik door als het geen "Goede" letter is maar hij zit wel in het woord[/i]
- Foute letters: Komen helemaal niet in het woord voor.[F]
- [i]Dat is dan de laatste optie automatisch[/i]
1 voor het te raden woord
2 voor de poging van het te raden woord
3 letter helpen, die bijhoud wat de status is tussen elke gelijke posities van 1 en 2.
Verder heb ik:
Een array van 5x5 voor de te kleuren vakjes (genummerd van 01 tot en met 25)..
Een array van 5x5 voor de in te vullen letters (genummerd van 01 tot en met 25).
Een variable die bijhoud wat de huidige letter is [l]
Een variabele die bijhoud wat de huidige rij is.
Voorbeeld:
Het te raden woord; LINGO.
Je doet een poging met: OODLE
Wat er vervolgens gebeurd is dat alle 2 de "o" geel word, omdat die dus ergens anders in het woord voorkomen. De derde array word ook [H][H][F][H][F].
Wat ik geprobeerd heb:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| for (int i = 0; i < 5; i++) { if (l[current_line, i].Text == mistery_word[i]) { continue; } for (int j = 0; j < 5; j++) { if (l[current_line, i].Text == mistery_word[j]) { if (letter_helper[j] == "H") { try_letters[loop_word] = l[current_line, loop_word].Text; break; } else if (mistery_word[j + 1].IndexOf(l[current_line, j].Text) >= 0) { continue; } else { letter_helper[j] = "F"; try_letters[loop_word] = l[current_line, loop_word].Text; break; } } } } |
Dit resulteerde dat er GEEN gele letters meer tevoorschijn kwamen, dus dat is helaas niet wat de bedoeling was.
Vraag:
Hoe kan ik een check laten uitvoeren die controleert bij het 'kleuren' van de letters of een "[H]" ook nog wel zo is of dat deze niet nog een keer in het woord voorkomt en dus er voor zorgd dat de eerste "o" geel maakt, maar de tweede blauw (fout) doordat deze niet ook nog in het woord zit?
Gebruik visual studio voor de code en C# als programmeertaal.
[ Voor 31% gewijzigd door RobIII op 09-02-2018 22:11 . Reden: Code tags toegevoegd, irrelevante code verwijderd. ]