Example #1
0
        public string PossiblePlace(int x, int y, int z, int gameId)
        {
            var          pg           = repository.GetByColumName("GameId", gameId).FirstOrDefault();
            UICoordinate uICoordinate = new UICoordinate();
            UIPlayGame   uIPlaygame   = new SrzJson().desrz(pg);

            if (pg.Gamer1 == pg.Queue)
            {
                uICoordinate = new PossiblePlace(
                    uIPlaygame,
                    Convert.ToByte(x),
                    Convert.ToByte(y),
                    Convert.ToByte(z)).
                               White();
            }

            else if (pg.Gamer2 == pg.Queue)
            {
                uICoordinate = new PossiblePlace(
                    uIPlaygame,
                    Convert.ToByte(x),
                    Convert.ToByte(y),
                    Convert.ToByte(z)).
                               BLack();
            }
            return(JsonConvert.SerializeObject(uICoordinate));
        }
Example #2
0
        public UICoordinate SimpleDum(byte x, byte y)
        {
            UICoordinate uICoordinate = new UICoordinate();

            //right down
            if (Check(playGame.BlackCoordinate, (byte)(x + 1), (byte)(y + 1)) == Possison.yes)
            {
                if (Check(allCoordinates, (byte)(x + 2), (byte)(y + 2)) == Possison.no)
                {
                    uICoordinate.PossibleCoordinates.Add(new Coordinate((byte)(x + 2), (byte)(y + 2)));
                    uICoordinate.DumCoordinates.Add(new Coordinate((byte)(x + 1), (byte)(y + 1)));
                }
            }

            //left down
            if (Check(playGame.BlackCoordinate, (byte)(x - 1), (byte)(y + 1)) == Possison.yes)
            {
                if (Check(allCoordinates, (byte)(x - 2), (byte)(y + 2)) == Possison.no)
                {
                    uICoordinate.PossibleCoordinates.Add(new Coordinate((byte)(x - 2), (byte)(y + 2)));
                    uICoordinate.DumCoordinates.Add(new Coordinate((byte)(x - 1), (byte)(y + 1)));
                }
            }
            return(uICoordinate);
        }
Example #3
0
        public UICoordinate PossiblePlace(byte x, byte y)
        {
            UICoordinate uICoordinate = new UICoordinate();

            uICoordinate = SimpleDum(x, y);
            if (uICoordinate.PossibleCoordinates.Count > 0)
            {
                return(uICoordinate);
            }
            return(SimpleMove(x, y));
        }
Example #4
0
        public UICoordinate White()
        {
            var          s            = new WhitePossiblePlace(G);
            var          q            = new WhiteQuenPossiblePlace(G);
            UICoordinate uICoordinate = new UICoordinate();

            if (G.Move.AgainDum)
            {
                if (x == G.Move.NewX && y == G.Move.NewY)
                {
                    if (z > 0)
                    {
                        uICoordinate = q.PossibleDum(x, y);
                    }
                    else
                    {
                        uICoordinate = s.EveryWhereDum(x, y);
                    }
                }
                return(uICoordinate);
            }

            if (z > 0)
            {
                uICoordinate = q.PossibleDum(x, y);
            }
            else
            {
                uICoordinate = s.SimpleDum(x, y);
            }
            if (uICoordinate.DumCoordinates.Count > 0)
            {
                return(uICoordinate);
            }
            if (s.AnyStoneDum() || q.AnyStoneDum())
            {
                return(default(UICoordinate));
            }
            if (z > 0)
            {
                return(q.PossiblePlace(x, y));
            }
            else
            {
                return(s.PossiblePlace(x, y));
            }
        }
        UICoordinate SimpleMove(byte x, byte y)
        {
            UICoordinate ui = new UICoordinate();

            //right down
            if (Check(allCoordinates, (byte)(x + 1), (byte)(y - 1)) == Possison.no)
            {
                ui.PossibleCoordinates.Add(new Coordinate((byte)(x + 1), (byte)(y - 1)));
            }
            //left down
            if (Check(allCoordinates, (byte)(x - 1), (byte)(y - 1)) == Possison.no)
            {
                ui.PossibleCoordinates.Add(new Coordinate((byte)(x - 1), (byte)(y - 1)));
            }

            return(ui);
        }
Example #6
0
        public UICoordinate PossiblePlace(byte x, byte y)
        {
            UICoordinate uICoordinate = PossibleDum(x, y);

            if (uICoordinate.DumCoordinates.Count > 0)
            {
                return(uICoordinate);
            }

            #region singlePossision
            uICoordinate.PossibleCoordinates.AddRange(SingleRD(x, y));
            uICoordinate.PossibleCoordinates.AddRange(SingleRU(x, y));
            uICoordinate.PossibleCoordinates.AddRange(SingleLD(x, y));
            uICoordinate.PossibleCoordinates.AddRange(SingleLU(x, y));
            return(uICoordinate);

            #endregion
        }
Example #7
0
        public UICoordinate PossibleDum(byte x, byte y)
        {
            var rd = DumRightDown(x, y);
            var ru = DumRightUp(x, y);
            var ld = DumLeftDown(x, y);
            var lu = DumLeftUp(x, y);

            UICoordinate uICoordinate = new UICoordinate();

            #region DumPossision
            if (rd != null)
            {
                uICoordinate.DumCoordinates.Add(rd);
                uICoordinate.PossibleCoordinates.AddRange(SingleRD(rd.X, rd.Y));
            }

            if (ru != null)
            {
                uICoordinate.DumCoordinates.Add(ru);
                uICoordinate.PossibleCoordinates.AddRange(SingleRU(ru.X, ru.Y));
            }

            if (ld != null)
            {
                uICoordinate.DumCoordinates.Add(ld);
                uICoordinate.PossibleCoordinates.AddRange(SingleLD(ld.X, ld.Y));
            }

            if (lu != null)
            {
                uICoordinate.DumCoordinates.Add(lu);
                uICoordinate.PossibleCoordinates.AddRange(SingleLU(lu.X, lu.Y));
            }

            #endregion

            return(uICoordinate);
        }
        public UICoordinate PossiblePlace(byte x, byte y)
        {
            UICoordinate uICoordinate = new UICoordinate();

            if (playGame.Move.AgainDum)
            {
                if (x == playGame.Move.NewX && y == playGame.Move.NewY)
                {
                    return(uICoordinate = EveryWhereDum(x, y));
                }
                return(uICoordinate);
            }
            uICoordinate = SimpleDum(x, y);
            if (uICoordinate.PossibleCoordinates.Count > 0)
            {
                return(uICoordinate);
            }
            if (AnyStoneDum())
            {
                return(uICoordinate);
            }
            return(SimpleMove(x, y));
        }