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.