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
            Administrator

              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
                        Administrator

                          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
                            Administrator

                              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
                                Administrator

                                  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
                                      Administrator

                                        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
                                              Administrator

                                                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
                                                    Administrator

                                                      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
                                                        Administrator

                                                          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.