public Direction moveRobot(Direction direction) { switch (direction) { case Direction.RIGHT: if (RobotX + 1 <= room.GetLength(0) && room[RobotX + 1, RobotY] != FieldType.OBSTACLE) { RobotX += 1; } break; case Direction.LEFT: if (RobotX - 1 >= 0 && room[RobotX - 1, RobotY] != FieldType.OBSTACLE) { RobotX -= 1; } break; case Direction.DOWN: if (RobotY + 1 <= room.GetLength(1) && room[RobotX, RobotY + 1] != FieldType.OBSTACLE) { RobotY += 1; } break; case Direction.UP: if (RobotX - 1 >= 0 && room[RobotX, RobotY - 1] != FieldType.OBSTACLE) { RobotY -= 1; } break; } return(direction); }
public void Render(FieldType[,] changedRenderFields) { unsafe { for (int x = 0; x < changedRenderFields.GetLength(0); x++) { for (int y = 0; y < changedRenderFields.GetLength(1); y++) { var f = changedRenderFields[x, y]; var rect = new Rect(); rect.Height = this.blockSize; rect.Width = this.blockSize; rect.X = this.blockSize * x; rect.Y = this.blockSize * y; switch (f) { case FieldType.None: { SDL.SetRenderDrawColor(_renderer, 230, 230, 230, 205); SDL.RenderFillRect(_renderer, &rect); break; } case FieldType.Fruit1: { SDL.SetRenderDrawColor(_renderer, 255, 255, 0, 205); SDL.RenderFillRect(_renderer, &rect); break; } case FieldType.Border: { SDL.SetRenderDrawColor(_renderer, 0, 255, 0, 205); SDL.RenderFillRect(_renderer, &rect); break; } case FieldType.Snake1: { SDL.SetRenderDrawColor(_renderer, 255, 0, 0, 205); SDL.RenderFillRect(_renderer, &rect); break; } case FieldType.Snake2: { SDL.SetRenderDrawColor(_renderer, 0, 0, 255, 205); SDL.RenderFillRect(_renderer, &rect); break; } } } } SDL.RenderPresent(_renderer); } }
public void Render(IRenderer renderer) { renderer.Render(_changedData); for (int x = 0; x < _changedData.GetLength(0); x++) { for (int y = 0; y < _changedData.GetLength(1); y++) { _changedData[x, y] = FieldType.NoChange; } } }
private void TestResult(FieldType[,] solution, FieldType[,] solved) { Assert.AreEqual(solution.GetLength(0), solved.GetLength(0), "Diff Lengths: Rows"); Assert.AreEqual(solution.GetLength(1), solved.GetLength(1), "Diff Lengths: Columns"); for (int i = 0; i < solution.GetLength(0); i++) { for (int j = 0; j < solution.GetLength(1); j++) { Assert.AreEqual(solution[i, j], solved[i, j], "Matrix Value diff: " + "[" + i + ", " + j + "]"); } } }
// Declare member variables here. Examples: // Called when the node enters the scene tree for the first time. public override void _Ready() { world = new FieldType[worldSizeX, worldSizeY]; for (int x = 0; x < world.GetLength(0); x++) { for (int y = 0; y < world.GetLength(0); y++) { world[x, y] = FieldType.Empty; } } timer = (Timer)GetNode("Timer"); timer.Connect("timeout", this, nameof(onTick)); player = (PlayerLogic)GetNode("/root/Main/LogicWorld/PlayerLogic"); player.Connect(nameof(PlayerLogic.ChangedPosition), this, nameof(newPlayerPosition)); state = GameState.Running; }
public bool IsInBounds(Point point) => point.X >= 0 && point.Y >= 0 && point.X < _grid.GetLength(0) && point.Y < _grid.GetLength(1);