Tic Tac Toe: gerne fehler, verbesserungsvorschläge , bin anfänger

Code-Stücke können hier veröffentlicht werden.
Antworten
Struppi004
User
Beiträge: 6
Registriert: Sonntag 26. Januar 2020, 19:01

Code: Alles auswählen

#tic Tac Toe


spielfeld = [' ' for x in range (10)]

def PRINT(spielfeld):

    print("Wilkommen zu TicTacToe")

    print(spielfeld[1] + "|" + spielfeld[2] + "|" + spielfeld[3])
    print(spielfeld[4] + "|" + spielfeld[5] + "|" + spielfeld[6])
    print(spielfeld[7] + "|" + spielfeld[8] + "|" + spielfeld[9])

def EINGABE(position, buchstabe):
    buchstabe = spielfeld[position]

def PLATZ_FREI(position):
    return spielfeld[position] == ' '

def GEWONNEN(board, letter = ('X', 'O')):

    return (board[1] == letter and board[2] == letter and board[3] == letter) or (board[4] == letter and board[5] == letter and board[6] == letter) or (board[7] == letter and board[8] == letter and board[9] == letter) or (board[1] == letter and board[4] == letter and board[7] == letter) or (board[2] == letter and board[5] == letter and board[8] == letter) or (board[3] == letter and board[6] == letter and board[9] == letter) or (board[1] == letter and board[5] == letter and board[9] == letter) or (board[3] == letter and board[5] == letter and board[7] == letter)  

   

def VOLL():
    if spielfeld.count(' ') < 1:
        return True
    else: 
        False
def SPIELER_MOVE(): #überprüfung auf falsche zahl und symbol setzung
    auswahl_sp = input("bitte wähle eine zahl von (1-9)?")
    Zug = True

    while Zug:
        try:
            auswahl_sp = int(auswahl_sp) 
            try:
                if auswahl_sp > 0 and auswahl_sp < 10:
                    if PLATZ_FREI(auswahl_sp):
                        EINGABE(auswahl_sp, 'X')
                        Zug  = False
                    else:
                            print("dieser platz ist belegt")
                else:
                        print("bitte gib eine zahl in der spannr ein")
            except:
                    print("bitte gib eine zahl in der spannr ein")
        except:
            print("bitte gib eine zahl ein")
    
def KI_MOVE():
    import random

    mögliche_züge = [x for x,buchstabe in enumerate(spielfeld) if buchstabe == ' ']
    auswahl_KI = random.randrange(mögliche_züge)

    EINGABE(spielfeld, 'O')
    PRINT(spielfeld)
    print("der computer hat stelle", auswahl_KI, "gesetzt")

def main():
    spielen = True
    aktueller_spieler = 'X'
    while spielen:
        PRINT(spielfeld)
        if aktueller_spieler == 'X':
            SPIELER_MOVE()
            aktueller_spieler = 'O'
        elif aktueller_spieler == 'O':
            KI_MOVE()
            aktueller_spieler = 'X'

        if GEWONNEN:
            spielen = False
            print(aktueller_spieler,"hst gewonnen")
        else:
            return True
        
        if VOLL():
            spielen = False 
            print("unentschieden")
        else:
            return True

main()



    





        
Output; O hat gwonnen(obwohl O noch gar nicht gesetzt hat)
Benutzeravatar
__blackjack__
User
Beiträge: 14184
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Struppi004: Das ist doch genau der gleiche Code zu dem Du hier bereits einiges an Anmerkungen bekommen hast: viewtopic.php?f=11&t=47789

Warum postest Du den noch mal ohne ihn überarbeitet zu haben?
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
Struppi004
User
Beiträge: 6
Registriert: Sonntag 26. Januar 2020, 19:01

Sry bin neu in diesem forum und habe jetzt erst herausgefunden wie man den Code da richtig einfügt
Antworten