def test_board_as_array(self): with mock.patch('src.tictactoe.game.Board') as MockBoard: MockBoard.return_value.asArray.return_value = [Board.Mark.CROSS ] * 9 game = Tictactoe(MockBoard()) self.assertEqual(game.getBoardAsArray(), [Board.Mark.CROSS] * 9) MockBoard.return_value.asArray.assert_called_once()
def test_win_in_third_column(self): with mock.patch('src.tictactoe.game.Board') as MockBoard: MockBoard.return_value.asArray.return_value = [ Board.Mark.NOUGHT, Board.Mark.CROSS, Board.Mark.NOUGHT, Board.Mark.CROSS, Board.Mark.EMPTY, Board.Mark.NOUGHT, Board.Mark.CROSS, Board.Mark.CROSS, Board.Mark.NOUGHT ] game = Tictactoe(MockBoard()) self.assertEqual(game.isWinner(), True) self.assertEqual(game.getWinner(), Board.Mark.NOUGHT) self.assertEqual(game.isFinished(), True)
def test_not_finished_game(self): with mock.patch('src.tictactoe.game.Board') as MockBoard: MockBoard.return_value.asArray.return_value = [ Board.Mark.NOUGHT, Board.Mark.NOUGHT, Board.Mark.CROSS, Board.Mark.EMPTY, Board.Mark.CROSS, Board.Mark.NOUGHT, Board.Mark.EMPTY, Board.Mark.CROSS, Board.Mark.EMPTY ] game = Tictactoe(MockBoard()) self.assertEqual(game.isWinner(), False) self.assertEqual(game.getWinner(), None) self.assertEqual(game.isFinished(), False)
def test_win_diagonally_from_right_top(self): with mock.patch('src.tictactoe.game.Board') as MockBoard: MockBoard.return_value.asArray.return_value = [ Board.Mark.NOUGHT, Board.Mark.NOUGHT, Board.Mark.CROSS, Board.Mark.CROSS, Board.Mark.CROSS, Board.Mark.NOUGHT, Board.Mark.CROSS, Board.Mark.CROSS, Board.Mark.NOUGHT ] game = Tictactoe(MockBoard()) self.assertEqual(game.isWinner(), True) self.assertEqual(game.getWinner(), Board.Mark.CROSS) self.assertEqual(game.isFinished(), True)
def printBoard(self, game: Tictactoe): boardArray = game.getBoardAsArray() view = self.getHtmlView(boardArray) self.__saveHtmlView(view) webbrowser.open("file://" + FileHelper.getTmpFilePath(self.HTML_VIEW_FILE))
def run(self, game=Tictactoe()): self.game = game self.root.title(self.APP_NAME) self.root.iconbitmap(FileHelper.getAssetFilePath('icon.ico')) self.view = View(self.root, self) self.view.createBoard() self.root.mainloop()
return 0 gameType = 0 while gameType not in [1, 2]: gameType = askForIntOrGetZero( "Jak chcesz zagrac ? \n1) GUI \n2) Konsola \n") app: Application if gameType == 1: app = Gui() else: printerType = 0 while printerType not in PrinterFactory.getTypes(): printerType = askForIntOrGetZero( "Jak chcesz wysweitlac plansze ? \n1) W konsoli ?\n2) W przegladarce ?\n" ) printer = PrinterFactory.getPrinter(PrinterFactory.Type(printerType)) inputType = 0 while inputType not in InputAdapterFactory.getTypes(): inputType = askForIntOrGetZero( "Jak chcesz wprowadzac wspolrzedne ?\n 1) Kolejno od 1 do 9\n 2) Wspolrzedne jak dla mecierzy od 1 do 3, wiersz i kolumna rozdzielone przecinkiem ? " ) inputAdapter = InputAdapterFactory.getAdapter(inputType) app = Console(printer, Input(inputAdapter)) app.run(Tictactoe())