Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- Nothing=0
- X=1
- O=4
- def whowins(board):
- b=board
- 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])
- winningpos = list(map(sum,winningpos))
- return O if (3*O) in winningpos else (X if (3*X) in winningpos else Nothing)
- def whosnext(now):
- return O if now==X else X
- def newboard(board,position,turn):
- board=board[:]
- board[position-1]=turn
- return board
- def display(board):
- counter=1
- for x in board:
- if x==X:
- print(" X","|" if counter%3 else "\n",end="")
- elif x==O:
- print(" O","|" if counter%3 else "\n",end="")
- else:
- print("",counter,"|" if counter%3 else "\n",end="")
- counter+=1
- def main():
- board=[Nothing]*9
- turn=O
- for i in range(9,0,-1):
- display(board)
- while True:
- try:
- field = int(input("Welches Feld wollen Sie besetzen? "))
- except ValueError:
- print("Zahl eingeben")
- continue
- if board[field-1]==Nothing:
- break
- else:
- print("Dieses Feld ist schon besetzt")
- turn = whosnext(turn)
- board = newboard(board,field,turn)
- if whowins(board)==O:
- print("Spieler 'O' gewinnt")
- input()
- sys.exit()
- elif whowins(board)==X:
- print("Spieler 'X' gewinnt")
- input()
- sys.exit()
- print("Unentschieden")
- input()
- sys.exit()
- if __name__=="__main__":
- main()
- input()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement