Informatik Python?
Findet jemand meinen Fehler? Irgendwas muss ich wohl falsch gemacht haben - es geht um Würfeln und 2er und 3er Paschs

2 Antworten
du berücksichtigst nicht den Fall, das w2=w3 ebenfalls ein Zweierpasch ist.
Allerdings würde ich garnicht jeden wert einzeln miteinander vergleichen, sondern
- die drei Würfe als Liste mit 3 Elementen ansehen
- mehrfache Ergebnisse entfernen.
- Hat die Liste danach nur noch 1 Element, so handelt es sich um einen 3er-Pasch.
- Hat die Liste 2 Elemente , so war ein Duplikat dabei, welches entfernt wurde, also ein 2er-Pasch
- ist die Liste unverändert , also 3 Elemente , so ist es Müll
demo.py
import random
randomList = []
for i in range(0,3):
n = random.randint(1,6)
randomList.append(n)
uniqueList = list(dict.fromkeys(randomList)) #ermittle gleiche elemente
uListCount = len(uniqueList)
print( "Diese 3 Zahlen wurden gewürfelt: ", randomList)
print( "Diese Zahlen aus der Liste sind Einzigartig : ", uniqueList)
print(uListCount," einzigartige Elemente")
if uListCount == 1: print("3er Pasch")
elif uListCount == 2: print("2er Pasch")
else : print("Müll")
Das vorgehen ist natürlich völlig unabhängig von der verwendeten Sprache. In Powershell sähe die Sache so aus:
$UniqueList = 1..3|
%{1..6|Get-Random}|
sort -unique
Write-Host $UniqueList
switch ( $UniqueList.Count ){
1 {'3er Pasch'}
2 {'2er Pasch'}
default {'Muell'}
}
Was ist, wenn w2 = w3, aber nicht w1= w2?
Und wenn du einen Zweierpasch gefunden hast, was dann? Die müssen alle ausgegeben werden.
Es gibt drei Arten von Zweierpasch, Du hast nur zwei beachtet.
Dass du es selbst gemacht hast, war mir klar. Was falsch ist, habe ich erklärt.
Genau kenne ich mich mit den Diagrammen nicht mehr aus.
Willst du zwei Ausgsben haben, Zweier/Dreierpasch? Dann zwei Ausgaberechtecke.
Alle drei Prüfungen auf Zweierpasch gehen bei true / wahr zur Ausgabe eines Zweierpasches.
Du hast drei Ausgänge mit Ausgaben. Dahin musst du vom Eingang aus unterscheiden.
1. Dreierpasch
2. Zweierpasch
3. Pasch
Ablauf:
Testen auf Dreierpasch, true => 1. Ausgabe
false: Testen auf w1 = w2. True => 2. Ausgabe
false: Testen auf w1 = w3. True => 2. Ausgabe
false: Testen auf w2 = w3. True => 2. Ausgabe
false: 3.Ausgabe
Warte was? Hä? Also ich habe das „Stuktogramm“ selbst gemacht und ja auch gemerkt, dass da was nicht stimmt, aber das verstehe ich jetzt wirklich nicht :(