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

Samstag 29. Februar 2020, 22:23

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: 5993
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Samstag 29. Februar 2020, 22:29

@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?
long long ago; /* in a galaxy far far away */
Struppi004
User
Beiträge: 6
Registriert: Sonntag 26. Januar 2020, 19:01

Samstag 29. Februar 2020, 22:42

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