Advertisement
1997kobra

Tic Tac Toe

Mar 24th, 2013
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.62 KB | None | 0 0
  1. import sys
  2.  
  3. Nothing=0
  4. X=1
  5. O=4
  6.  
  7. def whowins(board):
  8.     b=board
  9.     winningpos = (b[:3],b[3:6],b[6:9],b[:7:3],b[1:8:3],b[2:9:3],b[:9:4],b[2:7:2])
  10.     winningpos = list(map(sum,winningpos))
  11.  
  12.     return O if (3*O) in winningpos else (X if (3*X) in winningpos else Nothing)
  13.    
  14.  
  15.  
  16. def whosnext(now):
  17.     return O if now==X else X
  18.  
  19.  
  20. def newboard(board,position,turn):
  21.     board=board[:]
  22.     board[position-1]=turn
  23.     return board
  24.  
  25. def display(board):
  26.     counter=1
  27.     for x in board:
  28.         if x==X:
  29.             print(" X","|" if counter%3 else "\n",end="")
  30.         elif x==O:
  31.             print(" O","|" if counter%3 else "\n",end="")
  32.         else:
  33.             print("",counter,"|" if counter%3 else "\n",end="")
  34.         counter+=1
  35.  
  36.  
  37. def main():
  38.     board=[Nothing]*9
  39.     turn=O
  40.     for i in range(9,0,-1):
  41.         display(board)
  42.         while True:
  43.             try:
  44.                 field = int(input("Welches Feld wollen Sie besetzen? "))
  45.             except ValueError:
  46.                 print("Zahl eingeben")
  47.                 continue
  48.             if board[field-1]==Nothing:
  49.                 break
  50.             else:
  51.                 print("Dieses Feld ist schon besetzt")
  52.         turn = whosnext(turn)
  53.         board = newboard(board,field,turn)
  54.  
  55.         if whowins(board)==O:
  56.             print("Spieler 'O' gewinnt")
  57.             input()
  58.             sys.exit()
  59.         elif whowins(board)==X:
  60.             print("Spieler 'X' gewinnt")
  61.             input()
  62.             sys.exit()
  63.  
  64.     print("Unentschieden")
  65.     input()
  66.     sys.exit()
  67.    
  68. if __name__=="__main__":
  69.     main()
  70.     input()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement