Seite 1 von 1

Tic Tac Toe in Python

Verfasst: Montag 15. Juni 2020, 16:02
von HY007
Hey Leute,
ich bin noch relativ neu bei Python und wollte fragen, ob mir Jemand helfen könnte
1. Wie ich meinen Code verkürzen könnte und
2. Wie ich es hinbekommen kann, dass man die bereits 'besetzten' Felder für den anderen Spieler ''Sperren'' kann?

Schonmal Danke im Vorraus.

PS: Ich weiß nicht ob icgh das mit dem Einfügen des Codes richtig gemacht habe falls nicht bitte erklären :D

Code: Alles auswählen

import time,random
Spieler= random.randint(1,2)
#Felder--------------------------------------------
print (Spieler)
#A--------------
A1 = 'A1'
A2 = "A2"
A3 = "A3"
#B--------------
B1 = "B1"
B2 = "B2"
B3 = "B3"
#C--------------
C1 = "C1"
C2 = "C2"
C3 = "C3"

#Code--------------------------------------------------
if Spieler== 1:
    Spieler='X'
else:
    Spieler='O'


print (Spieler)
print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')


print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

#Gewinnüberprüfung-------------------------------------------------
if A1 == Spieler:
    if A2 == Spieler:
        if A3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if B1 == Spieler:
    if B2 == Spieler:
        if B3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            

if C1 == Spieler:
    if C2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            
if A1 == Spieler:
    if B1 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A2 == Spieler:
    if B2 == Spieler:
        if C2 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        

if A3 == Spieler:
    if B3 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A1 == Spieler:
    if B2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

if A3 == Spieler:
    if B2 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

        
if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

#Gewinnüberprüfung-------------------------------------------------
if A1 == Spieler:
    if A2 == Spieler:
        if A3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if B1 == Spieler:
    if B2 == Spieler:
        if B3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            

if C1 == Spieler:
    if C2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            
if A1 == Spieler:
    if B1 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A2 == Spieler:
    if B2 == Spieler:
        if C2 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        

if A3 == Spieler:
    if B3 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A1 == Spieler:
    if B2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

if A3 == Spieler:
    if B2 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

        
if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

#Gewinnüberprüfung-------------------------------------------------
if A1 == Spieler:
    if A2 == Spieler:
        if A3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if B1 == Spieler:
    if B2 == Spieler:
        if B3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            

if C1 == Spieler:
    if C2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            
if A1 == Spieler:
    if B1 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A2 == Spieler:
    if B2 == Spieler:
        if C2 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        

if A3 == Spieler:
    if B3 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A1 == Spieler:
    if B2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

if A3 == Spieler:
    if B2 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

        
if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

#Gewinnüberprüfung-------------------------------------------------
if A1 == Spieler:
    if A2 == Spieler:
        if A3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if B1 == Spieler:
    if B2 == Spieler:
        if B3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            

if C1 == Spieler:
    if C2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            
if A1 == Spieler:
    if B1 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A2 == Spieler:
    if B2 == Spieler:
        if C2 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        

if A3 == Spieler:
    if B3 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A1 == Spieler:
    if B2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

if A3 == Spieler:
    if B2 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

        
if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

#Gewinnüberprüfung-------------------------------------------------
if A1 == Spieler:
    if A2 == Spieler:
        if A3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if B1 == Spieler:
    if B2 == Spieler:
        if B3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            

if C1 == Spieler:
    if C2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            
if A1 == Spieler:
    if B1 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A2 == Spieler:
    if B2 == Spieler:
        if C2 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        

if A3 == Spieler:
    if B3 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A1 == Spieler:
    if B2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

if A3 == Spieler:
    if B2 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

        
if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

#Gewinnüberprüfung-------------------------------------------------
if A1 == Spieler:
    if A2 == Spieler:
        if A3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if B1 == Spieler:
    if B2 == Spieler:
        if B3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            

if C1 == Spieler:
    if C2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            
if A1 == Spieler:
    if B1 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A2 == Spieler:
    if B2 == Spieler:
        if C2 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        

if A3 == Spieler:
    if B3 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A1 == Spieler:
    if B2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

if A3 == Spieler:
    if B2 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

        
if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')

print ('Spieler '+str(Spieler)+' ist dran!')
print ('')
Eingabe=(input('Feld eingeben:'))

if Eingabe == ('A1'):
    A1=Spieler
if Eingabe == ('A2'):
    A2=Spieler
if Eingabe == ('A3'):
    A3=Spieler
if Eingabe == ('B1'):
    B1=Spieler
if Eingabe == ('B2'):
    B2=Spieler
if Eingabe == ('B3'):
    B3=Spieler
if Eingabe == ('C1'):
    C1=Spieler
if Eingabe == ('C2'):
    C2=Spieler
if Eingabe == ('C3'):
    C3=Spieler


print ('')
print (str(A1)+'|'+str(A2)+'|'+str(A3))
print ('———————')
print (str(B1)+'|'+str(B2)+'|'+str(B3))
print ('———————')
print (str(C1)+'|'+str(C2)+'|'+str(C3))
print ('')

#Gewinnüberprüfung-------------------------------------------------
if A1 == Spieler:
    if A2 == Spieler:
        if A3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if B1 == Spieler:
    if B2 == Spieler:
        if B3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            

if C1 == Spieler:
    if C2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
            
if A1 == Spieler:
    if B1 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A2 == Spieler:
    if B2 == Spieler:
        if C2 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        

if A3 == Spieler:
    if B3 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)
        
if A1 == Spieler:
    if B2 == Spieler:
        if C3 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

if A3 == Spieler:
    if B2 == Spieler:
        if C1 == Spieler:
            print ('Spieler '+str(Spieler)+' hat gewonnen!')
            time.sleep(500)

        
if Spieler == ('X'):
    Spieler=('O')
else:
    Spieler=('X')



Re: Tic Tac Toe in Python

Verfasst: Montag 15. Juni 2020, 16:56
von Sirius3
@HY007: Du mußt lernen, was Schleifen sind, und wie man sie anwendet. Um mit Schleifen zu arbeiten, müssen die Daten aber auch in der passenden Datenstruktur vorliegen. Bei TicTacToe ist das Feld z.B. am besten eine Liste mit drei Einträgen, die wiederum Listen sind, mit drei Feldern, so dass man insgesamt ein 3x3-Feld hat.

Dann lernst Du am besten auch gleich, was Funktionen sind, z.B. eine Funktion, die ein Feld darstellt, und eine Funktion, ob ein Spieler gewonnen hat, und wenn ja, welcher.
Und eine Funktion, die eine Eingabe vornimmt und dabei testet, ob die Eingabe sinnvoll war und das Feld noch frei war.

Nebenbei gewöhn Dir gleich an, den Konventionen zu folgen: alle Variablen werden klein geschrieben (z.B. `spieler`), setze nur Klammern dort, wo sie zwingend sind, oder die Lesbarkeit erhöhen:

Code: Alles auswählen

if spieler == 'X':
    spieler = 'O'
else:
    spieler = 'X'
Um eine Zuweisung (=) kommen auch Leerzeichen, dagegen vor der öffnenden Klammer eines Funktionsaufrufs keine `print(spieler)`.
Statt Strings mit + zusammenzustückeln, benutzt man Formatstrings.

Soviel mal für den Anfang.

Das ist ein gutes Beispiel, wie Du Stück für Stück neue Konzepte lernen und anwenden kannst.