Ideen und Tipps „Lotto Spiel“

Startseite Foren Deutsches LiveCode-Forum Ideen und Tipps „Lotto Spiel“

Ansicht von 24 Antwort-Themen
  • Autor
    Beiträge
    • #24581
      Ramon18
      Teilnehmer

      Hallo Leute, #

      ich habe schon angefangen eine Spiel zu programmieren was genau so funktioniert wie Lotto man schreibt im Voraus 6 zahlen in ein Textfeld und drückt dann auf Start und es werden 6 Zahlen zufällig angezeigt zwischen 1-46. Danach färbt sich die Zahl Grün wenn ich eine richtige erwischt habe und des Weiteren zeigt er mir an wie viele ich richtig gehabt pro Versuch.
      Ich hab auch ein Button schon der die Zahlen kontrolliert ob es 6 Zahlen sind die ich angegeben habe und die Zahlen die ich angegeben habe in die richtige große sortiert.
      Was leider aber nicht so ganz funktioniert ab und zu spinnt es weiß aber leider nicht wieso…
      Vielleicht könnt ihr mir da helfen würde mich sehr freuen 🙂

      Ich möchte noch weitere Sachen einbauen habt ihr irgendwelche Ideen was ich noch machen kann.
      Würde mich sehr freuen über jede Antwort!!

    • #24589
      Ramon18
      Teilnehmer

      Hallo Leute,

      Ich muss ein Button machen der 6 verschiedene Zahlen generiertet und diese in ein Feld einträgt. Eine Zahl zwischen 1 und 49.
      Ich komme leider nicht weiter und hoffe Ihr könnt mir helfen 🙂

      Vielen Dank im Voraus!!!

    • #24574
      Ramon18
      Teilnehmer

      Hallo Leute,

      ich hab eine Frage und würde mich freuen für jede weitere Hilfe.
      Ich möchte gerne eine Lotto App programmieren. Wo ich 6 zahlen mir ausdenke von 1 bis 46 und im Spiel werden nacheinander die Richtgen Zahlen auf Kugeln gezeigt wie bei der echten Lottoverlosung.

      Ich würde mich freuen wenn Ihr weitere Ideen habt und mir sogar schon fertige Codes schicken könnt:)

      Danke im Voraus

      Ben

    • #24576
      Klaus Major
      Verwalter

      Hi Ben,

      nimm’s nicht persönlich, wir helfen hier gerne, aber schreiben nicht den ganzen Code für Dich.
      Was hast Du denn schon soweit programmiert?

      Gruß

      Klaus

    • #24577
      Ramon18
      Teilnehmer

      Ich bin eigentlich fast fertig aber ich habe glaube ich einen Fehler gemacht bei der Automatischen Generation der Zahlen weil ich kann nicht auf stoppen drücken. Hoffe Ihr könnt mir helfen. Das ist mein Code:

      global richtige
      local auto
      local tries
      local correcttipps

      on mouseup
      put 0 into tries
      if the label of button „Bauto“ is „auto“ then
      set the label of button „Bauto“ to „stop auto“
      ask „how many correct numbers?“
      put it into correcttipps
      put 0 into richtige

      repeat until correcttipps is richtige
      if the label of button „Bauto“ is „auto“ then
      break
      end if
      send mouseup to button „Start“
      add 1 to tries
      end repeat
      set the label of button „Bauto“ to „auto“
      answer tries
      else
      set the label of button „Bauto“ to „auto“
      answer „It took “ & tries & “ tries!“
      end if

      end mouseup

    • #24578
      Ramon18
      Teilnehmer

      global richtige
      local auto
      local tries
      local correcttipps

      on mouseup
      put 0 into tries
      if the label of button „Bauto“ is „auto“ then
      set the label of button „Bauto“ to „stop auto“
      ask „how many correct numbers?“
      put it into correcttipps
      put 0 into richtige

      repeat until correcttipps is richtige
      if the label of button „Bauto“ is „auto“ then
      break
      end if
      send mouseup to button „Start“
      add 1 to tries
      end repeat
      set the label of button „Bauto“ to „auto“
      answer tries
      else
      set the label of button „Bauto“ to „auto“
      answer „It took “ & tries & “ tries!“
      end if

      end mouseup

    • #24579
      Ramon18
      Teilnehmer

      `global richtige
      local auto
      local tries
      local correcttipps

      on mouseup
      put 0 into tries
      if the label of button „Bauto“ is „auto“ then
      set the label of button „Bauto“ to „stop auto“
      ask „how many correct numbers?“
      put it into correcttipps
      put 0 into richtige

      repeat until correcttipps is richtige
      if the label of button „Bauto“ is „auto“ then
      break
      end if
      send mouseup to button „Start“
      add 1 to tries
      end repeat
      set the label of button „Bauto“ to „auto“
      answer tries
      else
      set the label of button „Bauto“ to „auto“
      answer „It took “ & tries & “ tries!“
      end if

      end mouseup

    • #24593
      Juergen19631231
      Teilnehmer
    • #24594
      Juergen19631231
      Teilnehmer

      …und natürlich eine Schleife, die 6 mal ausgeführt wird. ….

    • #24596
      Klaus Major
      Verwalter

      Hi Ramon18,

      das ist jetzt Dein dritter Thread zum eigentlich selben Thema!
      Das ist eine Spur zuviel, findest Du nicht auch?

      Warte doch bitte, bis jemand auf einen der anderen Threads antwortet!
      Und bitte schreib doch hier
      https://www.livecode-blog.de/forums/topic/lotto-spiel/
      dazu WELCHER Button welches Skript hat.
      Das ist nicht unbedingt ersichtlich im Code.

      Gruß

      Klaus

    • #24598
      Torsten
      Teilnehmer

      Hallo Ben,

      ich denke, das Problem ist hier:

      repeat until correcttipps is richtige
               if the label of button "Bauto" is "auto" then
                  break
               end if
               send mouseup to button "Start"
               add 1 to tries
      end repeat

      Die Schleife kann nur aus zwei Gründen verlassen werden:

      1. Wenn der Button „Bauto“ sein Label ändert (was aber kaum passieren wird, da scheinbar keine Zeit bleibt, um das abzufragen)

      2. Wenn correctipps = richtige ist, aber diese Werte, werden in der Schleife gar nicht verändert!

      Was passiert, wenn der Button „Start“ das mouseup bekommt, ist hier nicht ersichtlich, vielleicht liegt da noch der Hase im Pfeffer 😉

      Hir musst Du deine Logik nochmal durchdenken.

      Happy Coding!
      Torsten

    • #24611
      Klaus Major
      Verwalter

      Hinweis:
      Ich habe die drei Threads zu „Lotto“ zusammengeführt“!

    • #24618
      Ramon18
      Teilnehmer

      Wie kann man die Zahlen in eine Reihe bringen … weil die sind alle untereinander.
      Möchte die gerne nebeneinander haben.
      Danke im Voraus!

      on mouseUp
      repeat with z = 1 to 6
      put random(49) & return after fld „FEingabe“
      end repeat
      end mouseUp

    • #24620
      Klaus Major
      Verwalter

      Naja, RETURN macht halt eine neue Zeile, nimm doch ein Leerzeichen:

      ...
      put random(49) & " " after fld "FEingabe"
      ...
    • #24622
      Ramon18
      Teilnehmer

      ok Danke! Klar hab daran nicht gedacht!
      Wie kann man diese Zahlen auch nach Größe sortieren?

    • #24624
      Ramon18
      Teilnehmer

      Und danke nochmal an alle die mir bis jetzt geholfen haben 🙂

    • #24626
      Klaus Major
      Verwalter

      Wie kann man diese Zahlen auch nach Größe sortieren?

      Am Ende des Handlers:

      on mouseUp
        repeat with z = 1 to 6
        put random(49) & return after fld "FEingabe"
        end repeat
        set itemdelimiter to " "
        sort items of fld "FEingabe" numeric
      end mouseUp
    • #24632
      Ramon18
      Teilnehmer

      Hallo,

      ich hätte noch eine kleine Frage wenn ich ein Button programmieren möchte der Kontrolliert ob man 6 Zahlen in ein Textfeld eingegeben hat und kontrolliert ob man nur Zahlen eintippt hat wie könnte so ein Code aussehen. Ich bin komplett neu dabei und möchte mich nochmals herzlich bedanken für eure zahlreichen Hilfen. Danke!!

    • #24634
      Ramon18
      Teilnehmer

      Und könnte mir jemand helfen da ich mit diesen Code 6 Zahlen bekomme aber sein kann das 2 mal die gleiche Zahl rauskommt wie kann ich das ändern das nur 1 mal die eine Zahl auftaucht.
      Hoffe man hat mich verstanden.
      Danke im Voraus.

      `on mouseUp
      put empty into field „FEingabe“
      repeat with z = 1 to 6
      put random(49) & “ “ after fld „FEingabe“
      end repeat
      set itemdelimiter to “ “
      sort items of fld „FEingabe“ numeric
      end mouseUp

    • #24640
      Torsten
      Teilnehmer

      Hallo Ben,

      das Problem mit deiner bisherigen Schleife liegt darin, dass Du sechsmal ziehen willst, aber nicht weisst, was passiert, wenn du eine Zahl doppelt ziehst.

      In der folgenden Schleife wird solange gezogen (nur repeat = repeat forever), bis ein Zähler auf 6 hochgezählt hat.
      Der Zähler wird erst dann erhöht, wenn eine Zahl gezogen wird, die noch nicht in der Ausgabe enthalten ist (not among the words).

      Sollte so klappen 🙂

      Happy Coding
      Torsten

      repeat
        
            put random(49) into tZahl
            if tZahl is among the words of field "FEingabe" then -- wenn die Zahl schon gezoge wurde, mach's nochmal von vorn
               next repeat
            else -- Zahl noch nicht gezogen: jetzt wird sie übernommen und der Zähler hochgesetzt
               put tZahl & space after field "FEingabe"
               add 1 to tCounter -- hier wird gezählt, wieviele Zahlen schon gezogen wurden
               if tCounter = 6 then exit repeat -- nach der 6. Zahl geht es raus aus der Schleife
            end if
            
         end repeat
    • #24649
      Klaus Major
      Verwalter

      Oft denken wir gerade am Anfag direkt zu sehr „computerisch“, dabei gibt es für
      sehr viele Probleme wirkliche Analogien zum „richtigen“ Leben, so wie hier.
      Diese kann man fast 1:1 in LC übertragen.

      Ich würde es wieder eher so machen, wie man es mit einem Stift und einem Stück Papier
      machen würde! 🙂
      Erkennst Du die Analogie?

      on mouseUp 
         
         ## Wir erstellen eine Liste mit Zahlen von 1 bis 49, in jeweils einer neuen Zeile
         repeat with i = 1 to 49
            put i & CR after allezahlen
         end repeat
         ## Letzer Buchstabe in dieser Liste ist ein CR also haben wir am Ende eine leere Zeile!
         ## Wollen wir aber nciht, also weg damit!
         delete char -1 of allezahlen
         
         ## Jetzt ermitteln wir aus dieser Liste 6 zufällig Zahlen
         ## erst einmal durchschütteln
         sort lines of allezahlen by random(10000)
         
         ## Jetzt holen wir und die 6 Zahlen
         repeat 6
            
            ## Liste ist ja schon durchgerüttelt, also können wir:
            put line 1 of allezahlen & " " after sechsaus49
            
            ## Diese Nummer direkt löschen, somit brauchen wir nciht zu überprüfen,
            ## ob die schon einmal gezogen wurde! -> = ausradieren auf der Papierliste
            delete line 1 of allezahlen
            
            ## Wieder einmal durchschütteln
            sort lines of allezahlen by random(10000)      
         end repeat
         
         ## Letzer Buchstabe in sechsaus49 ist ein Leerzeichen, weg damit:
         delete char -1 of sechsaus49
         
         ## Sortieren:
         set itemdelimiter to " "
         sort items of sechsaus49 numeric
         
         ## Fertig zur Ausgabe:
         put sechsaus49 into fld"FEingabe"
      end mouseUp

      Auf meiner Webpage habe ich ein Memory Spiel genau so programmiert und in den Skripten gut kommentiert:
      https://major-k.de/xtalk.html
      Etwas nach unten scrollen -> simple_memory1
      Der Stack ist schon alt, daher eventuell die Dateiendung von .mc auf .rev ändern, damit LC das als gültigen Stack erkennt.

    • #24651
      Ramon18
      Teilnehmer

      Hallo,
      ich hätte noch eine kleine Frage wie kann man da noch was einbauen damit er erkennt wenn man keine Zahlen eingegeben hat wie zum Beispiel Sonderzeichen oder Buchstaben und eine Meldung bringt das man bitte nur Zahlen eingeben solle. Und das er erkennt das man nicht 2 oder 3 mal die gleiche Zahl genommen hat. Falls man öfters eine Zahl genommen hat das da auch eine Fehler Meldung kommt

      Ich würde mich sehr freuen über eine Antwort. 🙂

      on mouseup
         set the itemDelimiter to space
         sort items of field "FEingabe" numeric
         if the number of items of field "FEingabe" <> 6 then
            answer "Bitte 6 Zahlen eintragen"
            disable button "BStart"
            set the backgroundcolor of button "BStart" to darkred 
         else
            enable button "BStart"
         end if
      end mouseup
      • #24658
        Ramon18
        Teilnehmer

        Könnte mir jemand dabei Helfen?

    • #24660
      Klaus Major
      Verwalter

      Geduld gehört offenbar nicht zu Deinen Stärken, oder?

      Wenn jemand die Lösung weiß und Zeit hat, wird sich jemand schon Deiner erbarmen.
      Das hier ist ein Forum und kein Supermarkt. 😎

      wie kann man da noch was einbauen damit er erkennt wenn man keine Zahlen eingegeben hat wie zum Beispiel Sonderzeichen oder Buchstaben und eine Meldung bringt das man bitte nur Zahlen eingeben solle.

      Füge Deinem Eingabefeld dieses Skript zu:
      KEYDOWN reagiert darauf, wenn jemand eine Taste runterdrückt in dem Feld.
      Der Parameter tKey enthält die gedrückte Taste.

      on keydown tKey
        ## Wir schränken den Input auf Zahlen und Leerzeichen ein:
        if tKey is in " 1234567890" then
          ## OK ist erlaubt, also:
          pass keydown
        else
          ## User will einen "verbotenen" Buchstaben eingeben!
          ## Den lassen wir aber nicht durch, sondern beleidigen den User ob seiner Blödheit :-D
          answer "Himmelarschundzwirn! Dein Text hier..."
        end if
      end keydown

      Und bitte benutze die CODE Tags oben rechts:
      Skript hier einfügen, dann das Skipt ausswählen und auf CODE oben rechts klicken.
      So bleibt die Formatierung mit Einrückung etc. erhalten.

      Ich habe das bei Deinem letzten Skript nachgeholt, siehe oben.
      So wird alles viel besser lesbar.

    • #24664
      Ramon18
      Teilnehmer

      Ich habe es hinzugefügt und ich kann immer noch Buchstaben eintippen und er gibt mir keine Fehlermeldung…

    • #24666
      Klaus Major
      Verwalter

      WO hast Du es hinzugefügt?
      Das ist die große Frage…

      Es muss das Skript Deines Eingabefeldes sein, steht doch auch oben.

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