Probleme mit Hangman

Startseite Foren Deutsches LiveCode-Forum Probleme mit Hangman

Ansicht von 9 Antwort-Themen
  • Autor
    Beiträge
    • #43125
      odoborn
      Teilnehmer

        Hallo an die Community,
        ich arbeite seit 14 Tagen mit lc und habe das Hangman-Spiel aus Hauke Fehrs Buch programmiert. Jetzt möchte ich gerne die einzelnen Rateworte ersetzen durch 2 Begriffe, zwischen denen sich dann ein Leerzeichen befindet. Wie schaffe ich es, den Unterstrich in „dasWort“ an der Stelle verschwinden zu lassen, an der sich das Leerzeichen befindet?
        Besten Dank schonmal.

      • #43127
        Klaus Major
        Verwalter

          Hi Odoborn,

          ohne Haukes Buch und das Skript zu kennen vielleicht so:

          ...
          replace "_" with " " in dasWort
          ## Schwupps, zwei Wörter :-)
          ...

          ?

          Gruß

          Klaus

        • #43129
          odoborn
          Teilnehmer

            Danke für den Tipp. Klappt leider nicht, ich probiers weiter.

          • #43130
            Klaus Major
            Verwalter

              Hm, kommt halt auf den weiteren Verlauf des Skripte an bzw. wie diese Variable verwendet werden soll. Poste doch mal das ursprüngliche Skript und alle anderen Skripte in denen diese Variable verwendet wird.

              Das kriegen wir schon hin! 🙂

            • #43132
              odoborn
              Teilnehmer
                global ratewort,buchstabe,fehler
                
                on ermittleWort
                   put "Autobahn Zahnbürste Fotografie Waldmeister Hundeleine Oberarzt Fensterbrett Lautsprecher" into wortliste
                   put the number of words of wortliste into anzahl
                   put random(anzahl) into zufall
                   put word zufall of wortliste into ratewort
                   put toUpper (ratewort) into ratewort
                   put 0 into fehler
                   set the icon of btn "hangman" to empty
                end ermittleWort
                
                on zeileAnzeigen
                   put empty into fld "dasWort"
                   repeat for each char c in ratewort
                      put "_ " after fld "dasWort"
                   end repeat
                end zeileAnzeigen
                
                on auswertung
                   put the mousechar into buchstabe
                   if buchstabe is in ratewort then
                      buchstabeZeigen
                   else
                      galgenZeichnen
                   end if
                   endauswertung
                end auswertung
                
                on buchstabeZeigen
                   put the number of chars of ratewort into anzahl
                   repeat with x = 1 to anzahl
                      if (char x of ratewort) = buchstabe then
                         put buchstabe into char (x*2-1) of fld "dasWort" 
                      end if
                   end repeat
                end buchstabeZeigen
                
                on galgenZeichnen
                   add 1 to fehler
                   set the icon of btn "hangman" to the id of img ("hangman"&fehler)
                end galgenZeichnen
                
                on endauswertung
                   if fehler = 6 then
                      answer "Leider gescheitert! Das richtige Wort war : "&ratewort
                   end if
                   if "_" is not in fld "dasWort" then
                      answer "Glückwunsch! Das Wort ist komplett!"
                   end if
                end endauswertung
                
                on openStack
                   ermittleWort
                   zeileAnzeigen
                end openStack
              • #43133
                Klaus Major
                Verwalter

                  Bitte die CODE Tags nach dem Einfügen benutzen, dann bleibt die Formatierung des Skripts erhalten!
                  Siehe oben, ich habe das mal nachgeholt.

                  Es gibt aber keine Variable namens -> dasWort!?
                  Meinst Du das Feld „dasWort“?
                  Wenn ja, dann sollen keine Unterstriche die fehlenden Buchstaben vertreten, sondern Leerzeichen?
                  Wenn ja, dann sieht man aber nicht, wie viel Buchstaben notwendig sind!
                  Aber vielleicht ist das gewünscht?

                • #43134
                  Klaus Major
                  Verwalter

                    AHA! Nach zweimaligem Lesen habe ich es nun begriffen. 😀
                    Ich gucke noch mal rein…

                  • #43135
                    Klaus Major
                    Verwalter

                      OK, das sollte so klappen, nur diesen Handler ersetzen bzw. das IF THEN ergänzen:

                      on zeileAnzeigen
                         put empty into fld "dasWort"
                         repeat for each char c in ratewort
                            ## Ein Leerzeichen durch ZWEI Leerzeichen ersetzen,
                            if c = " " then
                               put "  " after fld "dasWort"
                            else
                               ## Sonst wie gehabt durch Unterstrich und Leerzeichen:
                               ## Machtd die Sache aber etwas komplizierter zu verstehen bzw. zu erkennen
                               put "_ " after fld "dasWort"
                            end if
                         end repeat
                      end zeileAnzeigen
                    • #43137
                      odoborn
                      Teilnehmer

                        Grazie mille,

                        es funktioniert!

                      • #43138
                        Klaus Major
                        Verwalter

                          Prego, amico mio!

                      Ansicht von 9 Antwort-Themen
                      • Du musst angemeldet sein, um auf dieses Thema antworten zu können.