Code: Alles auswählen
import random
def eingabe(wort):
nicht_erlaubt = "!§%&()=}{()[]}´`#*+-0123456789\"\'-.,<>|^°/@;:_ "
eingabe = str(input("Hey, bitte gebe deinen Buchstaben ein! >"))
if eingabe == "exit()":
eingabe = "exit()"
elif (len(eingabe) > 1 or eingabe in nicht_erlaubt) and eingabe.upper() != wort.upper():
eingabe = "ERROR"
elif eingabe.upper() == wort.upper():
eingabe = "GEWONNEN"
return eingabe
def wort_zufall():
wortliste = ["Affe", "Lappen", "Frosch", "Döner", "Ich", "Dadam"]
wort = random.choice(wortliste)
return wort
def finden(suchen, suchen_in):
pos_aus = []
for i in range(len(suchen_in)):
pos = suchen_in.find(suchen, i)
if pos != -1:
pos_aus.append(pos)
return pos_aus
def leerzeichen(wort):
linien = "-"*len(wort)
if " " in wort:
pos_leerzeichen = []
for leerzeichen in range(len(wort)):
pos_leer = wort.find(" ", leerzeichen)
if pos_leer != -1:
linien = list(linien)
linien[pos_leer] = " "
return "".join(linien)
def leerzeichen_zahl(wort):
linienzahl = 0
if " " in wort:
for leerzeichen in range(len(wort)):
pos_leer = wort.find(" ", leerzeichen)
if pos_leer != -1:
linienzahl += 1
return linienzahl
def wortcheck(wort):
nicht_erlaubt = "!§%&()=}{()[]}´`#*+-0123456789"
valide = True
for i in range(len(wort)):
if wort[i] in nicht_erlaubt:
valide = False
return valide
def spielmodus():
print("Hey welchen Spielmodus möchtest du nehmen. 'E' für Einzelspieler und 'M' für Mehrspieler")
while True:
modi = input(">")
if modi.upper() in ("E", "M"):
return modi.upper()
print("Bitte gebe was gültiges ein [E|M]!")
def multiplayer():
print("Bitte gebe das zu erratende Wort ein!")
while True:
wort_eingabe = input(">")
if len(wort_eingabe) > 3 and wortcheck(wort_eingabe):
return wort_eingabe
print("Gebe bitte ein Wort ein, welches aus mehr als 3 Buchstaben besteht!")
if spielmodus() == "E":
wort_eingabe = wort_zufall().upper()
wort_eingabe_org = wort_eingabe
linien = leerzeichen(wort_eingabe)
s = list(linien)
print(f"\n{linien}\n")
gewonnen = False
erraten = []
else:
wort_eingabe = multiplayer().upper()
wort_eingabe_org = wort_eingabe
linien = leerzeichen(wort_eingabe)
s = list(linien)
print(f"\n{linien}\n")
gewonnen = False
erraten = []
for versuche in range(len(wort_eingabe_org)+3):
exit = False
check = eingabe(wort_eingabe_org)
if check == "GEWONNEN":
gewonnen = True
break
elif check == "exit()":
exit = True
break
elif check == "ERROR":
print("Gebe bitte nur einen BUCHSTABEN ein!")
print(f"Versuche über: {len(wort_eingabe_org) + 2 - versuche}\n")
else:
check_gross = check.upper()
if check_gross in wort_eingabe:
erraten.append(check)
print("\nYES!")
position = finden(check_gross, wort_eingabe_org)
for vorhanden in range(len(position)):
a = position[vorhanden]
s[a] = check
wort_eingabe = wort_eingabe.replace(check_gross, "")
ausgabe = "".join(s)
print(f"\n{ausgabe}\n")
print(f"Verusche über: {len(wort_eingabe_org) + 2 - versuche}\n")
elif check in erraten:
print("\nDu hast den Buchstaben bereits erraten!\n")
print(f"Verusche über: {len(wort_eingabe_org) + 2 - versuche}\n")
else:
print(f"\"{check}\" ist kein Buchstabe des Wortes!\n")
print(f"Verusche über: {len(wort_eingabe_org) + 2 - versuche}\n")
if (len(wort_eingabe) - leerzeichen_zahl(wort_eingabe)) == 0:
gewonnen = True
break
if gewonnen == True:
if versuche == 0:
print(f"Juhu du hast in {versuche + 1} Zug gewonnen!")
else:
print(f"Juhu du hast in {versuche + 1} Zügen gewonnen!")
elif exit == False:
print("\nDu hast verloren!!")
else:
print("Du hast das Programm beendet!")
Code: Alles auswählen
def versuchsanzeige(wort, versuche):
print(f"Verusche über: {len(wort) + 2 - versuche}\n")
Beim googlen bin ich jetzt auch nicht wirklich weitergekommen...TypeError: 'int' object is not callable