-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.min.js
8 lines (8 loc) · 1.59 KB
/
app.min.js
1
2
3
4
5
6
7
8
/**
* app.js file for logicy/lose-it
* source: https://github.com/logicy/lose-it
* @author sushiljainam
* @authorURL https://github.com/sushiljainam
*/
var app=angular.module("loseItApp",[]);
app.controller("mainCntr",["$scope",function(r){r.gameState=0,r.startGame=function(a,e,t){r.gameState=1,r.config={},r.config.m=a||3,r.config.n=a||3,r.flag={},r.flag.turnPlayer=!!e,r.matrix=[];for(var n=0;n<r.config.m;n++){for(var f=[],i=0;i<r.config.n;i++)f.push(0);r.matrix.push(f)}r.gameState=2},r.handleClick=function(a,e){r.gameState>=3||r.matrix[a][e]||(r.flag.turnPlayer?r.matrix[a][e]=1:r.matrix[a][e]=2,r.checkWin()?(r.gameState=4,r.flag.gameStatusText=(2==r.checkWin()?"X":"O")+" wins."):r.checkTie()&&(r.gameState=5,r.flag.gameStatusText="game tie."),r.flag.turnPlayer=!r.flag.turnPlayer)},r.checkTie=function(){for(var a=r.config.m,e=r.config.n,t=r.matrix,n=!0,f=0;a>f;f++)for(var i=0;e>i;i++)if(!t[f][i]){var n=!1;break}return n},r.checkWin=function(){for(var a=r.config.m,e=r.config.n,t=r.matrix,n=0;a>n;n++){for(var f=!0,i=0;e>i;i++){if(!t[n][i]){f=!1;break}if(i>0&&t[n][i]!=t[n][i-1]){f=!1;break}}if(f)return t[n][0]}for(var i=0;a>i;i++){for(var f=!0,n=0;e>n;n++){if(!t[n][i]){f=!1;break}if(n>0&&t[n][i]!=t[n-1][i]){f=!1;break}}if(f)return t[0][i]}for(var f=!0,i=0;e>i;i++){if(!t[i][i]){f=!1;break}if(i>0&&t[i][i]!=t[i-1][i-1]){f=!1;break}}if(f)return t[0][0];for(var f=!0,i=0;e>i;i++){if(!t[i][e-i-1]){f=!1;break}if(i>0&&t[i][e-i-1]!=t[i-1][e-i]){f=!1;break}}return f?t[0][e-1]:!1},r.showMatrixValue=function(a,e){return r.matrix[a][e]},r.numberToArray=function(r){for(var a=[],e=1;r>=e;e++)a.push(e);return a}}]);