Wie kann ein Lottospiel programmieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Sweantix
User
Beiträge: 1
Registriert: Sonntag 29. Mai 2022, 14:30

in etwa mit diesen Funktionen
6x die Aufforderung eine Zahl einzugeben
Prüfung, ob die Zahl im geforderten Zahlbereich liegt
falls nein: Hinweis und erneute Eingabeaufforderung falls ja: Zahl in eine Liste schreiben
Prüfung, ob eine Zahl doppelt eingegeben wurde
falls ja: Hinweis und erneute Eingabeaufforderung falls nein: Zahl in eine Liste schreiben
6 Zufallszahlen erzeugen
Prüfung, ob eine Zahl mehrfach vorkommt
falls ja: neue Zufallszahl erzeugen
falls nein: Zufallszahl in eine Liste schreiben
Listen sortiert ausgeben
Die Übereinstimmungen zwischen eingegebenen Zahlen und Zufallszahlen ("Richtigen") ermitteln und ausgeben
Die Anzahl der Übereinstimmungen zwischen eingegebenen Zahlen und Zufallszahlen ("Richtigen") ermitteln und ausgeben
Abfrage, ob neu gespielt (das ganze Programm wiederholt werden) soll
Falls ja: neuer Programmdurchlauf Falls nein: Programmabbruch

Freue mich auf Antwort
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Seufz. Wir lösen hier keine Hausaufgaben auf Bestellung. Wir helfen Leuten, die es selber schaffen wollen. Also was hast du Probiert, was ist dir unklar?
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Sweantix: Hinweis zum Zufallszahlen erzeugen: Das ist in Deiner Beschreibung komplizierter als nötig, weil es in der Python-Standardbibliothek bereits eine Funktion gibt um k Elemente aus einer gegebenen Population ohne Wiederholungen zu wählen.

Selbst wenn es diese Funktion nicht gäbe, würde man sich hier eher an einer realen Lottoziehung orientieren, bei der ja nicht immer wieder Bälle gezogen werden und mit vorher gezogenen Zahlen verglichen werden, sondern es werden die vorhandenen Zahlen ordentlich durchgemischt, und dann die ersten 6 davon genommen. Für das Mischen gäbe es auch schon eine fertige Funktion, und um von den gemischten Zahlen dann die ersten 6 zu nehmen gibt es Syntax.

Für das ermitteln der Treffer/Übereinstimmungen der Hinweis, dass man das mit Mengen lösen kann. Python hat dafür einen eingebauten Datentyp.

Grundgerüst:

Code: Alles auswählen

#!/usr/bin/env python3
import random

LOWEST_NUMBER = 1
HIGHEST_NUMBER = 49
GUESS_COUNT = 6

assert GUESS_COUNT <= HIGHEST_NUMBER - LOWEST_NUMBER + 1


def main():
    ...


if __name__ == "__main__":
    main()
Da wo die "..." stehen kommt das Hauptprogramm hin. Es könnte Sinn machen Teilaufgaben in eigenen Funktionen zu lösen, damit das übersichtlich bleibt, und man Teillösungen getrennt testen kann.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten