/
app.js
111 lines (48 loc) · 2.36 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
(function () {
var app = angular.module('connect4', []);
app.controller('GameController', function ($scope) {
$scope.game = new GameState();
$scope.game.startGame();
$scope.dropToken = function (column) {
var successfulDrop = $scope.game.board.dropTokenWithPlayer(column, $scope.game.currentPlayerID);
if (successfulDrop){
$scope.game.goToNextPlayer();
var millisecondsElapsed = $scope.game.players["player2"].lastTurnDuration;
var numberOfTurns = $scope.game.players["player2"].numberOfTurnsAnalyzed;
var timeComplexity = Math.log(numberOfTurns) / Math.log($scope.game.board.columns);
document.getElementById("message").innerHTML = "Your opponent took " + millisecondsElapsed
+ " milliseconds to make their turn. " + "They looked at " + numberOfTurns
+ " possible turns. The time complexity for this turn was O(N^" + timeComplexity + ")";
}
else {
document.getElementById("message").innerHTML = "You selected a full column. Please select a different column";
}
if($scope.game.board.winningGroup !== null){
var winningPlayerString = playerString($scope.game.board.winningGroup.spaces[0].playerID);
var winningMessage = winningPlayerString + " won";
document.getElementById("message").innerHTML = "The game is over: " + winningMessage;
}
};
document.addEventListener("gameOverEvent", function(e) {
var winningSpaces = $scope.game.board.winningGroup.spaces;
for(var key in winningSpaces){
var space = winningSpaces[key];
var id = "space" + space.boardCoordinate.column + space.boardCoordinate.row;
var element = document.getElementById(id);
element.className += " winning";
}
}.bind($scope));
});
app.filter('color', function () {
return function (input) {
switch(input) {
case "player1":
return "#FF0000";
case "player2":
return "#FFFF00";
default:
return "#000000";
}
};
});
})();