Last active
July 3, 2025 07:37
-
-
Save horstjens/e7277154922532f6fbf3bb61f32ac695 to your computer and use it in GitHub Desktop.
tictactoe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# tic tac toe | |
# done: maximal 9 spielzüge | |
# done: besetzes Feld soll nicht mehr spielbar sein | |
# done: gewinnermittlung | |
def hat_jemand_gewonnen(spieler): | |
""" | |
kontrolliert die liste felder, ob ein das zeichen | |
namens 'spieler' 3 x nebeneinander (horizontal, | |
waagrecht oder schräg) vorkommt | |
""" | |
for (a,b,c) in ((0,1,2), (3,4,5), (6,7,8), # waagrecht | |
(0,3,6), (1,4,7), (2,5,8), # senkrecht | |
(0,4,8), ( 2,4,6)): # schräg | |
if felder[a] == felder[b] == felder[c] == spieler: | |
return True | |
return False | |
def frage_nach_buchstabe(erlaubt): | |
while True: | |
print("Bitte q eingeben zum aufhören") | |
print("Oder Nummer des Feldes zum spielen:") | |
antwort = input(f"({erlaubt}) >>>").lower().strip()[0] | |
if antwort not in erlaubt: | |
print("ungültige Eingabe") | |
continue | |
return antwort | |
# index: 0 1 2 3 4 5 6 7 8 | |
# nummer: 1 2 3 4 5 6 7 8 9 | |
felder = [".",".",".",".",".",".",".",".","."] | |
zeichen = ["x", "o"] | |
spielbrett = """ | |
7 | 8 | 9 | |
--+---+-- | |
4 | 5 | 6 | |
--+---+-- | |
1 | 2 | 3 | |
""" | |
#spielzug = 1 | |
erlaubt = "q123456789" | |
#while True: | |
print(spielbrett) | |
for spielzug in range(1,10): | |
wer_ist_dran = spielzug % 2 # 0 oder 1 | |
spieler = zeichen[wer_ist_dran] # x oder o | |
print(f"spielzug: {spielzug} Spieler: {spieler}") | |
antwort = frage_nach_buchstabe(erlaubt) | |
if antwort == "q": | |
break | |
spielbrett = spielbrett.replace(antwort, spieler) | |
#spielzug += 1 | |
# felder updaten | |
index = int(antwort) - 1 | |
felder[index] = spieler | |
# erlaubte zeichen reduzieren | |
erlaubt = erlaubt.replace(antwort, "") | |
print(spielbrett) | |
# Gewinnermittlung | |
if hat_jemand_gewonnen(spieler): | |
print(f"GEWONNEN") | |
break | |
print("Auf Wiedersehen") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment