Probleme mit Hangman

Startseite Foren Deutsches LiveCode-Forum Probleme mit Hangman

Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #25354
      bonwolly
      Teilnehmer

      Hallo,
      bin gerade dabei das Kapitel „Hangman“ durchzuarbeiten. Mein Problem ist, glaube ich, der Part „mousechar“ Ich habe mir zur Kontrolle zwei Textfelder eingebaut und habe festgestellt, dass das Ratewort ermittelt wird, aber der Buchstabe unter der Maus (mousechar) offensichtlich nicht. Habe schon nach Rechtschreibfehlern gesucht ( ist nicht gerade meine Stärke 🙂 ) komme aber leider nicht weiter. Kann mir jemand helfen?

      global rateWort, buchstabe, fehler
      on ermittleWort
      set the icon of the button „hangman“ to empty
      put fld „langerText“ into wortListe
      put the number of words of wortListe into anzahl
      put random (anzahl) into zufallsWort
      put word zufallsWort of wortListe into rateWort
      put toUpper (rateWort) into rateWort
      put rateWort into fld „testfeld“
      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
      put buchstabe into fld „testfeld1“
      if buchstabe is in ratewort then
      buchstabeZeigen
      else
      galgenZeichnen
      end if
      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 „dasWort“ then
      answer „Glückwunsch! Das Wort ist komplett!“
      end if
      end endauswertung

      Vielen Dank und beste Grüße
      Wolfgang

    • #25397
      bonwolly
      Teilnehmer

      ok, ich hab da noch mal rumprobiert und habe festgestellt das dies hier das Problem zu sein scheint:

      on auswertung
      put the mousechar into buchstabe
      put buchstabe into fld „testfeld1“

      so ähnlich im Buch beschrieben. Ich habe nur diese Funktion auf einem einfachen Stack getestet.
      Da passiert überhaupt nichts! somit funktionert natürlich das ganze Skript nicht wirklich und man kommt beim erlernen von Live Code per Buch nicht weiter.
      Das gleiche Problem hat Jon19 vor kurzem auch hier beschrieben. Hat jemand eine Idee?
      Frohe Weihnachten und danke im Vorraus

      Wolfgang

    • #25399
      Klaus Major
      Verwalter

      Hi Wolfgang,

      wie schon Jon gesagt, ich kenne das Spiel nicht, und weiß daher nicht, was und wie gespielt wird.

      Aber wann wird „auswertung“ denn ausgeführt?
      „the mousechar“ ist der Buchstabe unter der Maus, also muss selbige offensichtlich über irgendwinem Buchstaben schweben zu dem Zeitpunkt!? Sehr verwirrend… 😎

      Gruß

      Klaus

    • #25401
      bonwolly
      Teilnehmer

      Hallo KLaus,
      ich weiß leider nicht wie man hier Bilder hochladen kann. dann wäre es einfacher.
      In dem Spiel muss ein zufälliges Wort erraten werden, das in einem Textfeld ( rateWort) verdeckt durch Unterstriche dargestellt wird. In einem weiteren Textfeld befinden sich Buchstaben von A-Z. Klickt man nun mit der Maus einen richtigen Buchstaben an soll er statt der Unterstriche ( in rateWort) angezeigt werden. Wenn nicht erscheint ein Teil eines Galgens bis nach 6 Versuchen der Galgen komplett mit Leiche
      🙂 erscheint.

      Das funktioniert mit dem auswählen des Zufallswort und der Darstellung im Textfeld „rateWort“ mit den Unterstichen einwandfrei. Alleinen diese mousechar-Funktion leider nicht. Die Variable dafür ist leer!

      on auswertung
      put the mousechar into buchstabe
      if buchstabe is in ratewort then
      buchstabeZeigen
      else
      galgenZeichnen
      end if
      end ausWertung

      Gruß
      Wolfgang

    • #25426
      Klaus Major
      Verwalter

      Hi Wolfgang,

      danke, den Spielverlauf habe ich mir schon zusammen gereimt, aber wann, wo und wie soll
      denn der obige Handler „on ausWertung“ aufgerufen/ausgeführt werden?

      Das ist mir völlig unklar, da der Handler ja voraussetzt, daß die Maus über irgendeinem
      Text steht -> the mousechar

      Wenn dem nicht so ist, ist diese Variable buchstabe natürlich leer.

      Gruß

      Klaus

    • #25428
      bonwolly
      Teilnehmer

      Hallo Klaus,

      jetzt hab ich es auf Grund deines Einwandes kapiert,“on ausWertung“ wird gar nicht aufgerufen.
      Da fällt man als Anfänger natürlich nicht gleich drüber, zumal der Autor des Buches es eigentlich genauso beschrieben hat wie ich es ich es gemacht habe.

      Originalauszug aus dem Buch:

      Das Wort wird ermittelt, die Striche werden angezeigt. Dann kann es jetzt ans Raten gehen. Wenn auf einen Buchstaben geklickt wird, dann soll geprüft werden, ob sich der Buchstabe im Ratewort befindet. Falls ja, dann wird er dort eingetragen, falls nein, dann wird der Galgen ein Stück weitergezeichnet. Prinzipiell sieht das Skript dazu so aus:
      on auswertung
      if buchstabe is in ratewort then
      buchstabeZeigen else
      galgenZeichnen
      end if
      end auswertung
      Das ist übrigens nicht schematisch skizziert, sondern so sieht bereits das richtige endgültige Skript aus. if buchstabe is in ratewort prüft konkret, ob der gerade gewählte Buchstabe in der globalen Variablen ratewort enthalten ist. Was noch fehlt, ist die Ermittlung des gewählten Buchstabens, über die wir schon gesprochen haben.
      put the mousechar into buchstabe
      Damit wird das Zeichen, über dem die Maus sich gerade befindet, in die Variable buchstabe geschrieben. Dieser Befehl muss an den Anfang des Skripts, gleich hinter on auswertung.

      Das funktioniert so sicher nicht. Damit haben sicher schon andere Leser Probleme gehabt, z.B Jon19
      Ich probiere mal rum, wie ich das lösen kann.

      Vielen Dank für deine Hilfe und noch schöne Restweihnachten
      Wolfgang

    • #25468
      Klaus Major
      Verwalter

      Ach so, die Lösung steht gar nicht explizit im Buch? Na, toll…

      Eventuell sollte „on auswertung“ direkt beim Klick auf einen Buchstaben aufgerufen werden?
      Also „on mouseup“ statt einem eigenen Handler? Das ergäbe durchaus Sinn.

    • #25493
      bonwolly
      Teilnehmer

      Hallo Klaus,

      Ja, habe ich auch so gemacht und jetzt funktioniert es. Dafür habe ich jetzt beim nächsten Schritt, beim Anzeigen der Galgenbilder ein Problem. Dazu melde ich mich aber erst wenn ich die Lösung selber gefunden hab. Bei dieser Aufgabe im Buch scheinen mir einige Sachen nicht 100%tig zu sein. Z.B. verschwinden die Striche nicht im Textfeld, wenn die Buchstaben angezeigt werden. Wahrscheinlich liegt es an mir. Ich melde mich hier nochmal sobald ich mehr weiß.

      LG
      Wolfgang

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