public ConnectionPoint(Point _begin, Point _end, Room _room, EDirections _dir) { Begin = _begin; End = _end; Room = _room; Dir = _dir; }
public void AddLayer(OpenTKTile _tile, FColor _color, EDirections _direction, bool _isCorpse) { m_layers.Add(new LayerInfo() { Tile = _tile, Color = _color, Direction = _direction, IsCorpse = _isCorpse }); }
public Neighborship(int sourceId, EDirections fromSourceToSinkDirection, int sinkId) { SourceId = sourceId; FromSourceToSinkDirection = fromSourceToSinkDirection; SinkId = sinkId; FromSinkToSourceDirection = (EDirections)((int)(fromSourceToSinkDirection + 2) % 4); }
public virtual void SidePress(EDirections _direction) { if (OnSidePress != null) { OnSidePress(_direction); } }
public void DrawTile(OpenTKTile _tile, int _x, int _y, FColor _color, EDirections _direction, bool _isCorpse) { if (_x < 0 || _y < 0 || _x >= m_tilesInRow || _y >= m_tilesInColumn) { return; } var info = m_tiles[_x, _y]; info.IsFogged = false; info.AddLayer(_tile, _color, _direction, _isCorpse); }
public VirusCarrierSimple(List <string> gridMap) { InfectionMap = new Dictionary <int, Dictionary <int, bool> >(); for (int y = 0; y < gridMap.Count; y++) { InfectionMap.Add(y, new Dictionary <int, bool>()); for (int x = 0; x < gridMap[y].Length; x++) { bool val = gridMap[y][x] == '#' ? true : false; InfectionMap[y].Add(x, val); } } direction = EDirections.eUp; currentYPos = InfectionMap.Count / 2; currentXPos = InfectionMap[0].Count / 2; InfectionBursts = 0; }
public VirusCarrierEnhanced(List <string> gridMap) { InfectionMap = new Dictionary <int, Dictionary <int, ENodeStates> >(); for (int y = 0; y < gridMap.Count; y++) { InfectionMap.Add(y, new Dictionary <int, ENodeStates>()); for (int x = 0; x < gridMap[y].Length; x++) { ENodeStates val = gridMap[y][x] == '#' ? ENodeStates.eInfected : ENodeStates.eClean; InfectionMap[y].Add(x, val); } } direction = EDirections.eUp; currentYPos = InfectionMap.Count / 2; currentXPos = InfectionMap[0].Count / 2; InfectionBursts = 0; }
public static Point GetDelta(this EDirections _direction) { switch (_direction) { case EDirections.UP: return(new Point(0, -1)); case EDirections.DOWN: return(new Point(0, 1)); case EDirections.LEFT: return(new Point(-1, 0)); case EDirections.RIGHT: return(new Point(1, 0)); default: throw new ArgumentOutOfRangeException("_direction"); } }
public static ETerrains GetTerrain(this EDirections _direction) { switch (_direction) { case EDirections.UP: return(ETerrains.UP); case EDirections.DOWN: return(ETerrains.DOWN); case EDirections.LEFT: return(ETerrains.LEFT); case EDirections.RIGHT: return(ETerrains.RIGHT); default: throw new ArgumentOutOfRangeException("_direction"); } }
public static Vector3 DirectionToVector(EDirections _dire) { if (_dire == EDirections.DOWN) { return(Vector3.back); } if (_dire == EDirections.UP) { return(Vector3.forward); } if (_dire == EDirections.LEFT) { return(Vector3.left); } if (_dire == EDirections.RIGHT) { return(Vector3.right); } return(Vector3.zero); }
public static IEnumerable <KeyValuePair <Point, EDirections> > GetBorders(this EDirections _direction) { switch (_direction) { case EDirections.UP: case EDirections.DOWN: yield return(new KeyValuePair <Point, EDirections>(EDirections.LEFT.GetDelta(), EDirections.LEFT | EDirections.RIGHT)); yield return(new KeyValuePair <Point, EDirections>(EDirections.RIGHT.GetDelta(), EDirections.LEFT | EDirections.RIGHT)); break; case EDirections.LEFT: case EDirections.RIGHT: yield return(new KeyValuePair <Point, EDirections>(EDirections.UP.GetDelta(), EDirections.UP | EDirections.DOWN)); yield return(new KeyValuePair <Point, EDirections>(EDirections.DOWN.GetDelta(), EDirections.UP | EDirections.DOWN)); break; default: yield break; } }
public Corpse(Creature _creature) : base(EALNouns.Corpse, _creature.Material) { m_direction = Util.AllDirections.RandomItem(World.Rnd); m_creature = _creature; }
public override void Draw(Point _point, FColor _color, EDirections _direction, bool _isCorpse) { GameProvider.TileMapRenderer.DrawTile(this, _point.X, _point.Y, _color, _direction, _isCorpse); }
public int ChangeRoom(int currentRoomId, IAvatar avatar, EDirections direction) { //ActiveDungeons.Find(x => x.DungeonId == currentDungeonId)?.ChangeRoom(currentRoomId, avatar, direction); return(DungeonMockData.Dungeon.ChangeRoom(currentRoomId, avatar, direction)); }
public OnWallTorch(LightSource _lightSource, EDirections _direction, Material _material) : base(EALNouns.Torch, _lightSource, _material) { m_direction = _direction; }
static void Main(string[] args) { List <string> maze = new List <string>(); foreach (string line in InputLoader.LoadByLines("input.txt")) { maze.Add(line); } // Maze walker int x = FindMazeStart(maze); int y = 0; EDirections dir = EDirections.eDown; int steps = 0; StringBuilder sb = new StringBuilder(); while (true) { switch (dir) { case EDirections.eUp: y--; break; case EDirections.eDown: y++; break; case EDirections.eLeft: x--; break; case EDirections.eRight: x++; break; } steps++; if (maze[y][x] == '+') // direction change { switch (dir) { case EDirections.eUp: if ((maze[y][x - 1] == '-') || char.IsLetter(maze[y][x - 1])) { dir = EDirections.eLeft; } else if ((maze[y][x + 1] == '-') || char.IsLetter(maze[y][x + 1])) { dir = EDirections.eRight; } break; case EDirections.eDown: if ((maze[y][x - 1] == '-') || char.IsLetter(maze[y][x - 1])) { dir = EDirections.eLeft; } else if ((maze[y][x + 1] == '-') || char.IsLetter(maze[y][x + 1])) { dir = EDirections.eRight; } break; case EDirections.eLeft: if ((maze[y - 1][x] == '|') || char.IsLetter(maze[y - 1][x])) { dir = EDirections.eUp; } else if ((maze[y + 1][x] == '|') || char.IsLetter(maze[y + 1][x])) { dir = EDirections.eDown; } break; case EDirections.eRight: if ((maze[y - 1][x] == '|') || char.IsLetter(maze[y - 1][x])) { dir = EDirections.eUp; } else if ((maze[y + 1][x] == '|') || char.IsLetter(maze[y + 1][x])) { dir = EDirections.eDown; } break; } } else if (maze[y][x] == ' ') // Reached end of maze { break; } else { if (char.IsLetter(maze[y][x])) { sb.Append(maze[y][x]); } } } Console.WriteLine(string.Format("Passed letters: {0}", sb.ToString())); Console.WriteLine(string.Format("Steps taken: {0}", steps)); Console.ReadLine(); }
public Splatter(FColor _color, int _tileIndex) { m_color = _color; m_tileIndex = _tileIndex; m_direction = World.Rnd.GetRandomDirection(); }
public abstract void Draw(Point _point, FColor _color, EDirections _direction, bool _isCorpse);
public void Move() { if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eInfected) { switch (direction) { case EDirections.eUp: direction = EDirections.eRight; break; case EDirections.eDown: direction = EDirections.eLeft; break; case EDirections.eLeft: direction = EDirections.eUp; break; case EDirections.eRight: direction = EDirections.eDown; break; } InfectionMap[currentYPos][currentXPos] = ENodeStates.eFlagged; } else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eClean) { switch (direction) { case EDirections.eUp: direction = EDirections.eLeft; break; case EDirections.eDown: direction = EDirections.eRight; break; case EDirections.eLeft: direction = EDirections.eDown; break; case EDirections.eRight: direction = EDirections.eUp; break; } InfectionMap[currentYPos][currentXPos] = ENodeStates.eWeakened; } else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eFlagged) { switch (direction) { case EDirections.eUp: direction = EDirections.eDown; break; case EDirections.eDown: direction = EDirections.eUp; break; case EDirections.eLeft: direction = EDirections.eRight; break; case EDirections.eRight: direction = EDirections.eLeft; break; } InfectionMap[currentYPos][currentXPos] = ENodeStates.eClean; } else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eWeakened) { InfectionMap[currentYPos][currentXPos] = ENodeStates.eInfected; InfectionBursts++; } switch (direction) { case EDirections.eUp: currentYPos--; break; case EDirections.eDown: currentYPos++; break; case EDirections.eLeft: currentXPos--; break; case EDirections.eRight: currentXPos++; break; } if (!InfectionMap.ContainsKey(currentYPos)) { InfectionMap.Add(currentYPos, new Dictionary <int, ENodeStates>()); } if (!InfectionMap[currentYPos].ContainsKey(currentXPos)) { InfectionMap[currentYPos].Add(currentXPos, ENodeStates.eClean); } }
public void Move() { if (InfectionMap[currentYPos][currentXPos]) { switch (direction) { case EDirections.eUp: direction = EDirections.eRight; break; case EDirections.eDown: direction = EDirections.eLeft; break; case EDirections.eLeft: direction = EDirections.eUp; break; case EDirections.eRight: direction = EDirections.eDown; break; } } else { InfectionBursts++; switch (direction) { case EDirections.eUp: direction = EDirections.eLeft; break; case EDirections.eDown: direction = EDirections.eRight; break; case EDirections.eLeft: direction = EDirections.eDown; break; case EDirections.eRight: direction = EDirections.eUp; break; } } InfectionMap[currentYPos][currentXPos] = !InfectionMap[currentYPos][currentXPos]; switch (direction) { case EDirections.eUp: currentYPos--; break; case EDirections.eDown: currentYPos++; break; case EDirections.eLeft: currentXPos--; break; case EDirections.eRight: currentXPos++; break; } if (!InfectionMap.ContainsKey(currentYPos)) { InfectionMap.Add(currentYPos, new Dictionary <int, bool>()); } if (!InfectionMap[currentYPos].ContainsKey(currentXPos)) { InfectionMap[currentYPos].Add(currentXPos, false); } }
public static IEnumerable <EDirections> AllDirectionsIn(this EDirections _allowed) { return(Enum.GetValues(typeof(EDirections)).Cast <EDirections>().Where(_dir => _dir != EDirections.NONE && _dir != EDirections.ALL && _allowed.HasFlag(_dir))); }
public void AddLayer(OpenTKTile _tile, FColor _color, EDirections _direction, bool _isCorpse) { m_layers.Add(new LayerInfo(){Tile = _tile, Color = _color, Direction = _direction, IsCorpse = _isCorpse}); }
public void DrawTile(OpenTKTile _tile, int _x, int _y, FColor _color, EDirections _direction, bool _isCorpse) { if(_x<0 || _y<0 || _x>=m_tilesInRow || _y>=m_tilesInColumn) return; var info = m_tiles[_x, _y]; info.IsFogged = false; info.AddLayer(_tile, _color, _direction, _isCorpse); }