From a38a3a3d3dd8c2bb24cd3ba60eef8373c3d9a7e3 Mon Sep 17 00:00:00 2001 From: Paulina Nowak Date: Wed, 23 Dec 2020 23:37:04 +0100 Subject: [PATCH] dsds --- main.py | 47 ++++++++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/main.py b/main.py index ac5eb03..240246d 100644 --- a/main.py +++ b/main.py @@ -6,37 +6,32 @@ | | """ -from random import randint +import random class TicTacToe: - """ - uruchamia program, gracze wykonuja na zmiane ruchy, - az do osiagniecia wygranej przez jednego z nich - """ + def __init__(self): + self.player1 = Player("X") + self.player2 = Player("O") + self.board = Board() def run(self): - player1 = Player("X") - player2 = Player("O") - - board = Board() - - for x in range(1,10): - board.make_move(player1.token, player1.make_random_move(board.state)) - board.print() - if board.isWin(player1.token): + while True: + self.board.make_move(self.player1.token, self.player1.make_random_move(self.board.emptyFields)) + self.board.print() + if self.board.isWin(self.player1.token): print("Player 1 has won.") break - board.make_move(player2.token, player2.make_random_move(board.state)) - board.print() - if board.isWin(player2.token): + self.board.make_move(self.player2.token, self.player2.make_random_move(self.board.emptyFields)) + self.board.print() + if self.board.isWin(self.player2.token): print("Player 2 has won.") break class Board: def __init__(self): self.state = list(" "*9) - + self.emptyFields = [0, 1, 2, 3, 4, 5, 6, 7, 8] def print(self): board = ""+ self.state[0] +"|"+self.state[1] +"|"+self.state[2] +" \n-|-|-\n"+self.state[3] +"|"+self.state[4] +"|"+self.state[5] +"\n-|-|-\n"+self.state[6] +"|"+self.state[7] +"|"+self.state[8] +"\n" @@ -45,9 +40,14 @@ class Board: def make_move(self, token, field): if self.state[field] == " ": self.state[field] = token + self.emptyFields.remove(field) else: print("This field's taken.") + """ + Ta funkcja byłaby dużo bardziej użyteczna, + gdyby informowała nas który z graczy jest zwycięzcą + """ def isWin(self, token): if((self.state[0] == token and self.state[1] == token and self.state[2] == token) or (self.state[0] == token and self.state[4] == token and self.state[8] == token) or @@ -69,16 +69,9 @@ class Board: class Player: def __init__(self, token): self.token = token - - - def make_random_move(self, state): - emptyField = True - while emptyField: - randomField = randint(0,8) - field = state[randomField] - if field == " ": - return randomField + def make_random_move(self, emptyFields): + return random.choice(emptyFields)