コード例 #1
0
ファイル: GameRules.cs プロジェクト: LukeJ/PolarTicTacToe
        private bool CheckSpiral(Game game)
        {
            var lastMove = game.MoveList.Last();
            int? playerID = lastMove.UserID;
            int y = lastMove.position.Y;
            int x = lastMove.position.X;
            int distanceToOuterSpiral = (3 - y);

            Coordinate outerPosition1 = new Coordinate(x + distanceToOuterSpiral, 3);
            Coordinate outerPosition2 = new Coordinate(x - distanceToOuterSpiral, 3);

            var outer1 = (game[outerPosition1] == playerID && game[outerPosition1 - new Coordinate(1, 1)] == playerID && game[outerPosition1 - new Coordinate(2, 2)] == playerID && game[outerPosition1 - new Coordinate(3, 3)] == playerID);
            var outer2 = (game[outerPosition2] == playerID && game[outerPosition2 + new Coordinate(1, -1)] == playerID && game[outerPosition2 + new Coordinate(2, -2)] == playerID && game[outerPosition2 + new Coordinate(3, -3)] == playerID);

            if (outer1)
            {
                winningCoords.Add(outerPosition1);
                winningCoords.Add(outerPosition1 - new Coordinate(1, 1));
                winningCoords.Add(outerPosition1 - new Coordinate(2, 2));
                winningCoords.Add(outerPosition1 - new Coordinate(3, 3));
            }

            if (outer2)
            {
                winningCoords.Add(outerPosition2);
                winningCoords.Add(outerPosition2 + new Coordinate(1, -1));
                winningCoords.Add(outerPosition2 + new Coordinate(2, -2));
                winningCoords.Add(outerPosition2 + new Coordinate(3, -3));
            }

            //checking both spirals
            return outer1
                || outer2;
        }
コード例 #2
0
ファイル: GameRules.cs プロジェクト: nkramaric/PolarTicTacToe
        private bool CheckVertical(Game game)
        {
            var lastMove = game.MoveList.Last();
            int? playerID = lastMove.UserID;
            int y = lastMove.position.Y;
            int x = lastMove.position.X;

            return game[x, 0] == playerID && game[x, 1] == playerID && game[x,2] == playerID && game[x, 3] == playerID;
        }
コード例 #3
0
ファイル: Game.cs プロジェクト: LukeJ/PolarTicTacToe
        public static Game Create(int ChallengerID, int OpponentID)
        {
            PolarTicTacToeDataContext dataContext = new PolarTicTacToeDataContext();

            Game newGame = new Game();
            newGame.ChallengerID = ChallengerID;
            newGame.OpponentID = OpponentID;
            newGame.StartDate = DateTime.Now;

            newGame.GameState = Utils.GameState.Active.ToString();

            dataContext.Games.InsertOnSubmit(newGame);

            dataContext.SubmitChanges();

            return newGame;
        }
コード例 #4
0
ファイル: GameRules.cs プロジェクト: LukeJ/PolarTicTacToe
        private bool CheckVertical(Game game)
        {
            var lastMove = game.MoveList.Last();
            int? playerID = lastMove.UserID;
            int y = lastMove.position.Y;
            int x = lastMove.position.X;

            bool winner = game[x, 0] == playerID && game[x, 1] == playerID && game[x, 2] == playerID && game[x, 3] == playerID;

            if (winner)
            {
                winningCoords.Add(new Coordinate(x, 0));
                winningCoords.Add(new Coordinate(x, 1));
                winningCoords.Add(new Coordinate(x, 2));
                winningCoords.Add(new Coordinate(x, 3));
            }

            return winner;
        }
コード例 #5
0
		private void attach_Games2(Game entity)
		{
			this.SendPropertyChanging();
			entity.Winner = this;
		}
コード例 #6
0
		private void detach_Games2(Game entity)
		{
			this.SendPropertyChanging();
			entity.Winner = null;
		}
コード例 #7
0
		private void attach_Games1(Game entity)
		{
			this.SendPropertyChanging();
			entity.Opponent = this;
		}
コード例 #8
0
		private void detach_Games1(Game entity)
		{
			this.SendPropertyChanging();
			entity.Opponent = null;
		}
コード例 #9
0
		private void detach_Games(Game entity)
		{
			this.SendPropertyChanging();
			entity.Challenger = null;
		}
コード例 #10
0
		private void attach_Games(Game entity)
		{
			this.SendPropertyChanging();
			entity.Challenger = this;
		}
コード例 #11
0
 partial void DeleteGame(Game instance);
コード例 #12
0
 partial void UpdateGame(Game instance);
コード例 #13
0
 partial void InsertGame(Game instance);