Ingo Althöfer schrieb:
...
Ingo:
Danke. Und jetzt bitte Python-Code für ein Computer-Programm, was das Bongospiel gut spielt.
Cha:
Hier ist ein Python-Code für ein einfaches Bongo-Spiel-Programm, das gegen einen menschlichen Spieler spielt:
python
Copy code
import random
# Initialisierung der Haufen
haufen = [random.randint(1, 10) for i in range(3)]
# Computerklasse
class Computer:
def __init__(self):
pass
def zug(self, haufen):
# Bestimmen, welcher Haufen die meisten Steine hat
max_steine = max(haufen)
haufen_nr = haufen.index(max_steine) + 1
# Bestimmen, wie viele Steine entfernt werden sollen
if max_steine == 1:
steine = 1
else:
steine = random.randint(1, max_steine // 2)
# Aktualisieren der Haufen
haufen[haufen_nr - 1] -= steine
return haufen
# Spielstart
print("Willkommen beim Bongo-Spiel!")
spieler = input("Wie heißt du? ")
computer = Computer()
while True:
haufen = computer.zug(haufen)
print(f"Der Computer nimmt {steine} Steine vom Haufen {haufen_nr}.")
if sum(haufen) == 0:
print("Der Computer hat gewonnen!")
break
print("Es gibt derzeit folgende Haufen:")
for i, steine in enumerate(haufen):
print(f"Haufen {i+1}: {steine} Steine")
while True:
haufen_nr = int(input(f"{spieler}, von welchem Haufen möchtest du Steine wegnehmen? "))
if haufen_nr < 1 or haufen_nr
---> Abbruch durchChatGPT, auch nach 3 Minuten Warten keine Fortsetzung
Das Programm spielt nicht gut, sondern zufällig.
...
Ingo Althöfer.
Das bekomme ich nicht im Online Interpreter zum Laufen. Keine Ahnung woran es liegt?
Dieses hier funktioniert ja.
import random
# Initialisierung der Haufen
haufen = [random.randint(1, 10) for i in range(3)]
# Spielerklasse
class Spieler:
def __init__(self, name):
self.name = name
def zug(self, haufen):
print("Es gibt derzeit folgende Haufen:")
for i, steine in enumerate(haufen):
print(f"Haufen {i+1}: {steine} Steine")
while True:
haufen_nr = int(input(f"{self.name}, von welchem Haufen möchtest du Steine wegnehmen? "))
if haufen_nr < 1 or haufen_nr > 3:
print("Ungültige Haufennummer. Bitte wähle eine Zahl zwischen 1 und 3.")
continue
steine = int(input(f"Wie viele Steine möchtest du vom Haufen {haufen_nr} nehmen? "))
if steine < 1:
print("Du musst mindestens einen Stein nehmen.")
continue
if steine > haufen[haufen_nr-1]:
print("Es gibt nicht genug Steine in diesem Haufen.")
continue
haufen[haufen_nr-1] -= steine
break
return haufen
# Spielstart
print("Willkommen beim Bongo-Spiel!")
spieler1 = Spieler(input("Spieler 1, wie heißt du? "))
spieler2 = Spieler(input("Spieler 2, wie heißt du? "))
while True:
haufen = spieler1.zug(haufen)
if sum(haufen) == 0:
print(f"{spieler1.name} hat gewonnen!")
break
haufen = spieler2.zug(haufen)
if sum(haufen) == 0:
print(f"{spieler2.name} hat gewonnen!")
break
Willkommen beim Bongo-Spiel!
Spieler 1, wie heißt du? ich
Spieler 2, wie heißt du? du
Es gibt derzeit folgende Haufen:
Haufen 1: 1 Steine
Haufen 2: 9 Steine
Haufen 3: 4 Steine
ich, von welchem Haufen möchtest du Steine wegnehmen? 3
Wie viele Steine möchtest du vom Haufen 3 nehmen? 3
Es gibt derzeit folgende Haufen:
Haufen 1: 1 Steine
Haufen 2: 9 Steine
Haufen 3: 1 Steine
du, von welchem Haufen möchtest du Steine wegnehmen? 2
Wie viele Steine möchtest du vom Haufen 2 nehmen? 8
Es gibt derzeit folgende Haufen:
Haufen 1: 1 Steine
Haufen 2: 1 Steine
Haufen 3: 1 Steine
ich, von welchem Haufen möchtest du Steine wegnehmen? 1
Wie viele Steine möchtest du vom Haufen 1 nehmen? 1
Es gibt derzeit folgende Haufen:
Haufen 1: 0 Steine
Haufen 2: 1 Steine
Haufen 3: 1 Steine
du, von welchem Haufen möchtest du Steine wegnehmen? 2
Wie viele Steine möchtest du vom Haufen 2 nehmen? 1
Es gibt derzeit folgende Haufen:
Haufen 1: 0 Steine
Haufen 2: 0 Steine
Haufen 3: 1 Steine
ich, von welchem Haufen möchtest du Steine wegnehmen? 3
Wie viele Steine möchtest du vom Haufen 3 nehmen? 1
ich hat gewonnen!