Ich habe das komplette Pythontutorial gelesen, damit ein bisschen rumgespielt und dann Tic Tac Toe programmiert.
Dabei habe ich mir keine großen Gedanken über OOP (womit ich eh noch nicht umgehen kann) oder Qualität des Codes gemacht. Ich habe keinerlei Beispiele dazu gelesen, damit es ein komplettes Eigengewächs wird und ich meine Fehler klar erkennen kann.
Das ist die erste funktionierende Version und ich habe 2 Bitten an euch.
1. Könnt ihr analysieren, was alles hässlicher Code ist?
2. Was könnte man durch OOP daran auf den ersten Blick verbessern?
Code: Alles auswählen
def field(one,two,three,four,five,six,seven,eight,nine):
print (one+"|"+two+"|"+three)
print "-+-+-"
print (four+"|"+five+"|"+six)
print "-+-+-"
print (seven+"|"+eight+"|"+nine)
code = {"X":1,"O":4," ":0}
field("1","2","3","4","5","6","7","8","9")
decision = 10
one,two,three,four,five,six,seven,eight,nine = " "," "," "," "," "," "," "," "," "
player = "x"
while decision != "q":
decision = raw_input("\nPlease enter a number from \'1\' to \'9\'. You can cancel the programm with \'q\'.\n")
if decision == "1":
if player == "x" and one != "X" and one != "O":
one = "X"
player = "o"
elif player == "o" and one != "X" and one != "O":
one = "O"
player = "x"
elif decision == "2":
if player == "x" and two != "X" and two != "O":
two = "X"
player = "o"
elif player == "o" and two != "X" and two != "O":
two = "O"
player = "x"
elif decision == "3":
if player == "x" and three != "X" and three != "O":
three = "X"
player = "o"
elif player == "o" and three != "X" and three != "O":
three = "O"
player = "x"
elif decision == "4":
if player == "x" and four != "X" and four != "O":
four = "X"
player = "o"
elif player == "o" and four != "X" and four != "O":
four = "O"
player = "x"
elif decision == "5":
if player == "x" and five != "X" and five != "O":
five = "X"
player = "o"
elif player == "o" and five != "X" and five != "O":
five = "O"
player = "x"
elif decision == "6":
if player == "x" and six != "X" and six != "O":
six = "X"
player = "o"
elif player == "o" and six != "X" and six != "O":
six = "O"
player = "x"
elif decision == "7":
if player == "x" and seven != "X" and seven != "O":
seven = "X"
player = "o"
elif player == "o" and seven != "X" and seven != "O":
seven = "O"
player = "x"
elif decision == "8":
if player == "x" and eight != "X" and eight != "O":
eight = "X"
player = "o"
elif player == "o" and eight != "X" and eight != "O":
eight = "O"
player = "x"
elif decision == "9":
if player == "x" and nine != "X" and nine != "O":
nine = "X"
player = "o"
elif player == "o" and nine != "X" and nine != "O":
nine = "O"
player = "x"
if decision != "q":
print ""
field(one,two,three,four,five,six,seven,eight,nine)
checkrow1 = code[one]+code[two]+code[three]
checkrow2 = code[four]+code[five]+code[six]
checkrow3 = code[seven]+code[eight]+code[nine]
checkcolumn1 = code[one]+code[four]+code[seven]
checkcolumn2 = code[two]+code[five]+code[eight]
checkcolumn3 = code[three]+code[six]+code[nine]
checkdiag1 = code[one]+code[five]+code[nine]
checkdiag2 = code[three]+code[five]+code[seven]
if checkrow1 == 3 or checkrow2 == 3 or checkrow3 == 3 or checkcolumn1 == 3 or checkcolumn2 == 3 or checkcolumn3 == 3 or checkdiag1 == 3 or checkdiag2 == 3:
decision = "q"
print "\nPlayer \"X\" has won!"
if checkrow1 == 12 or checkrow2 == 12 or checkrow3 == 12 or checkcolumn1 == 12 or checkcolumn2 == 12 or checkcolumn3 == 12 or checkdiag1 == 12 or checkdiag2 == 12:
decision = "q"
print "\nPlayer \"O\" has won!"