コード例 #1
0
ファイル: tests.py プロジェクト: msmaeda/Tic-Tac-Toe
    def test_game_win_diagonals(self):
        """ Tests win by diagonals """
        gs      = GameState()
        state   = [1,0,0,0,1,0,0,0,1]
        self.assertEquals(gs.getWinner(state),1)

        state   = [0,0,1,0,1,0,1,0,0]
        self.assertEquals(gs.getWinner(state),1)
コード例 #2
0
ファイル: tests.py プロジェクト: msmaeda/Tic-Tac-Toe
    def test_game_no_winner(self):
        """ Tests game has no winner """
        gs      = GameState()
        state   = gs.reset()
        self.assertEquals(gs.getWinner(state),None)

        state   = [1,1,-1,0,0,0,0,0,0]
        self.assertEquals(gs.getWinner(state),None)
コード例 #3
0
ファイル: views.py プロジェクト: msmaeda/Tic-Tac-Toe
def move(request,position,state):
    """ Handles player move """
    gs              = GameState()
    sGameState      = str(state)
    iGameState      = []
    response_dict   = {}

    for ci in sGameState:
        if int(ci) == 2:
            iGameState.append(board.COMPUTER_PLAYER)
        else:
            iGameState.append(int(ci))

    newState        = gs.move(board.HUMAN_PLAYER,iGameState,int(position))

    if newState is None:
        response_dict.update({'status' : 'err', 'msg' : 'Invalid move'})
    elif gs.isGameOver(newState):
        winner      = gs.getWinner(newState)

        if winner is None:
            response_dict.update({'status'  : 'gameover',
                                  'msg'     : 'Tie Game',
                                  'state'   : newState})
        elif winner == board.HUMAN_PLAYER:
            response_dict.update({'status'  : 'gameover', 
                                  'msg'     : 'Player Wins!',
                                  'state'   : newState})
        else:
            response_dict.update({'status'  : 'gameover', 
                                  'msg'     : 'Computer Wins!',
                                  'state'   : newState})
    else:
        aiMove      = botMove(newState)

        if aiMove is None:
            response_dict.update({'status'  : 'err', 
                                  'msg'     : 'Something has gone wrong'})
        else:
            fState  = gs.move(board.COMPUTER_PLAYER,newState,aiMove)

            if gs.isGameOver(fState):
                response_dict.update({'status'  : 'gameover', 
                                      'msg'     : 'Computer Wins!',
                                      'state'   : fState})
            else:
                response_dict.update({'status'  : 'ok', 
                                      'msg'     : 'Your move',
                                      'state'   : fState})

    return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')