Пример #1
0
 public bool IsValidPoint(BoardPoint p)
 {
     return(p.X >= 0 &&
            p.X < Width &&
            p.Y >= 0 &&
            p.Y < Height);
 }
Пример #2
0
 public void Set(BoardPoint p, GameTileState state)
 {
     if (tiles[p.X, p.Y].State != state)
     {
         tiles[p.X, p.Y].State = state;
         if (fireUpdateEvents)
         {
             OnBoardUpdate(this, new EventArgs());
         }
     }
 }
Пример #3
0
        public bool IsBadPoint(BoardPoint p)
        {
            if (!IsValidPoint(p))
            {
                return(false);
            }
            var state = Get(p);

            return(
                state == GameTileState.Obstacle ||
                state == GameTileState.WormBody ||
                state == GameTileState.WormHead);
        }
Пример #4
0
        public void SlitherTo(BoardPoint pos, ref GameBoard board)
        {
            segments.AddFirst(new Segment()
            {
                Point = pos
            });
            if (segments.Count > MaxLength)
            {
                board.Set(segments.Last.Value.Point, GameTileState.Empty);
                segments.RemoveLast();
            }

            board.Set(pos, GameTileState.WormHead);
            if (segments.Count > 1)
            {
                board.Set(segments.First.Next.Value.Point, GameTileState.WormBody);
            }
        }
Пример #5
0
 public void Clear(BoardPoint p)
 {
     Set(p, GameTileState.Empty);
 }
Пример #6
0
 public GameTileState Get(BoardPoint p)
 {
     return(tiles[p.X, p.Y].State);
 }