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: 13182
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?
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
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