Example #1
0
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))
Example #2
0
    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'
Example #3
0
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')
Example #4
0
 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)
Example #5
0
 def setUp(self):
     self.view = GameView()
Example #6
0
 def __init__(self):
     self.game = Game()
     self.view = GameView()
Example #7
0
#! /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")
)
Example #8
0
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"),
)
Example #9
0
# -*- coding: utf-8 -*-

from django.conf.urls import patterns, url
from views import GameView

urlpatterns = patterns(
    '',
    url(r'', GameView.as_view(), name='game_index'),
)