class GameController: def __init__(self): self.game = Game() self.view = GameView() def run(self): print(self.view.intro()) while (True): players = input(self.view.number_of_players()) if players == "1": self.play(HumanController(player=1), ComputerController(player=2)) elif players == "2": self.play(HumanController(player=1), HumanController(player=2)) else: print(self.view.number_of_players_error()) continue break self.play_again() def play_again(self): resp = input(self.view.play_again) if resp.lower() != 'n': self.game = Game() print(self.view.newlines()) self.run() def play(self, player1, player2): self.display_board() for i in range(9): if i % 2 == 0: player1.move(self.game) else: player2.move(self.game) self.display_board() if self.game.is_won(): return self.game_results(player1, player2) def game_results(self, player1, player2): if self.game.winner: if player1.marker == self.game.winner: print(self.view.win_player(player=1)) elif player2.marker == self.game.winner: print(self.view.win_player(player=2)) else: print(self.view.draw()) def display_board(self): print(self.view.board(self.game.board))
def __init__(self, player): self.player = player self.view = GameView() if player == 1: self.marker = 'X' self.opponent = 'O' else: self.marker = 'O' self.opponent = 'X'
class TestGameView(unittest.TestCase): def setUp(self): self.view = GameView() def test_board(self): board = [1, 'O', 'O', 'X', 5, 'X', 7, 8, 9] self.assertEqual( self.view.board(board), ''' ╔═══╦═══╦═══╗ ║ 1 ║ O ║ O ║ ╠═══╬═══╬═══╣ ║ X ║ 5 ║ X ║ ╠═══╬═══╬═══╣ ║ 7 ║ 8 ║ 9 ║ ╚═══╩═══╩═══╝ ''') def test_new_lines(self): self.assertEqual(self.view.newlines(), '\n') self.assertEqual(self.view.newlines(3), '\n\n\n') def test_win_player(self): self.assertEqual(self.view.win_player(1), 'Player 1 won!') self.assertEqual(self.view.win_player(2), 'Player 2 won!') def test_next_move(self): self.assertEqual(self.view.next_move(1, 1), 'Player 1: 1') self.assertEqual(self.view.next_move(1, 5), 'Player 1: 5') self.assertEqual(self.view.next_move(2, 6), 'Player 2: 6')
def onNew(self): if(self.gameState): msg = QtGui.QMessageBox() msg.setText('A game is already in progress.') msg.setStandardButtons(QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel) if msg.exec_() == QtGui.QMessageBox.Ok: self.gameState.cleanup() else: return self.gameState = GameState() #imperial.addSceneTemplates(self.gameState) core_scenes.addSceneTemplates(self.gameState) self.logGameView = LogGameView(self.gameState) self.gameView = GameView(self.gameState) self.gameState.setState('location', 'Stronghold') self.gameState.init() self.setCentralWidget(self.gameView)
def setUp(self): self.view = GameView()
def __init__(self): self.game = Game() self.view = GameView()
#! /usr/bin/env python # -*- coding: UTF-8 -*- from django.conf.urls.defaults import patterns, url from views import GameMain, GameView urlpatterns = patterns( "", url(r"^$", GameMain.as_view(), name="game_main"), url(r"^game/$", GameView.as_view(), name="play_game") )
from django.conf.urls.defaults import patterns, include, url from views import ( GameView, LobbyView, GameCheckReadyView, GameJoinView, GameExitView, debug_deactivate_old_games, ) urlpatterns = patterns('', url(r'^(?P<pk>\d+)/$', GameView.as_view(), name="game-view"), url(r'^(?P<pk>\d+)/checkready$', GameCheckReadyView.as_view(), name="game-check-ready-view"), url(r'^(?P<pk>\d+)/join$', GameJoinView.as_view(), name="game-join-view"), url(r'^(?P<pk>\d+)/exit$', GameExitView.as_view(), name="game-exit-view"), )
# -*- coding: utf-8 -*- from django.conf.urls import patterns, url from views import GameView urlpatterns = patterns( '', url(r'', GameView.as_view(), name='game_index'), )