Startseite › Foren › Deutsches LiveCode-Forum › Ideen und Tipps „Lotto Spiel“
Schlagwörter: Button Schleife, Spiel, Spiel Tipps und Ideen
- Dieses Thema hat 25 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren von Klaus Major.
-
AutorBeiträge
-
-
November 21, 2020 um 14:03 Uhr #24581
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!! -
November 21, 2020 um 14:03 Uhr #24589
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!!!
-
November 21, 2020 um 14:03 Uhr #24574
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
-
November 21, 2020 um 15:05 Uhr #24576
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
-
November 21, 2020 um 18:26 Uhr #24577
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 correcttippson 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 richtigerepeat 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 ifend mouseup
-
November 21, 2020 um 18:33 Uhr #24578
global richtige
local auto
local tries
local correcttippson 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 richtigerepeat 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 ifend mouseup
-
November 21, 2020 um 18:33 Uhr #24579
`global richtige
local auto
local tries
local correcttippson 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 richtigerepeat 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 ifend mouseup
-
November 22, 2020 um 07:22 Uhr #24593
-
November 22, 2020 um 07:27 Uhr #24594
…und natürlich eine Schleife, die 6 mal ausgeführt wird. ….
-
November 22, 2020 um 12:36 Uhr #24596
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
-
November 22, 2020 um 13:25 Uhr #24598
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 -
November 22, 2020 um 13:44 Uhr #24611
Hinweis:
Ich habe die drei Threads zu „Lotto“ zusammengeführt“! -
November 22, 2020 um 17:32 Uhr #24618
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 -
November 22, 2020 um 17:49 Uhr #24620
Naja, RETURN macht halt eine neue Zeile, nimm doch ein Leerzeichen:
... put random(49) & " " after fld "FEingabe" ...
-
November 22, 2020 um 18:10 Uhr #24622
ok Danke! Klar hab daran nicht gedacht!
Wie kann man diese Zahlen auch nach Größe sortieren? -
November 22, 2020 um 18:10 Uhr #24624
Und danke nochmal an alle die mir bis jetzt geholfen haben 🙂
-
November 22, 2020 um 18:30 Uhr #24626
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
-
November 22, 2020 um 22:19 Uhr #24632
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!!
-
November 22, 2020 um 22:34 Uhr #24634
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 -
November 23, 2020 um 01:27 Uhr #24640
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
Torstenrepeat 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
-
November 23, 2020 um 14:30 Uhr #24649
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. -
November 23, 2020 um 19:05 Uhr #24651
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 kommtIch 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
-
November 23, 2020 um 21:21 Uhr #24658
Könnte mir jemand dabei Helfen?
-
-
November 23, 2020 um 21:50 Uhr #24660
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. -
November 23, 2020 um 22:20 Uhr #24664
Ich habe es hinzugefügt und ich kann immer noch Buchstaben eintippen und er gibt mir keine Fehlermeldung…
-
November 23, 2020 um 22:24 Uhr #24666
WO hast Du es hinzugefügt?
Das ist die große Frage…Es muss das Skript Deines Eingabefeldes sein, steht doch auch oben.
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.