This commit is contained in:
2020-12-15 15:46:45 -07:00
parent 00444fbba9
commit 45eca3b572
16 changed files with 146 additions and 40 deletions

View File

@@ -0,0 +1,20 @@
using System.Collections.Generic;
using ConsoleApp.Maps;
using HexCore;
namespace ConsoleApp.Vehicle
{
public class DetectionHead
{
public List<Coordinate2D> GetCoveredCells(
Graph graph,
Coordinate2D centerCoordinate,
int detectorRadius,
GlobalDirection direction) => graph.GetRange(centerCoordinate, detectorRadius);
public List<Cell> GetCoveredCells(
ISquareMap squareMap,
Cell centerCell,
int detectorRadius) => squareMap.GetRange(centerCell, detectorRadius);
}
}

View File

@@ -0,0 +1,16 @@
using ConsoleApp.Maps;
namespace ConsoleApp.Vehicle
{
public interface IVehicle
{
int Length { get; }
int Width { get; }
int DetectorOffset { get;}
int DetectorRadius { get;}
HexCore.Coordinate2D CurrentHexCell { get; set; }
Heading HexHeading { get; set; }
Heading SquareHeading { get; set; }
ICell CurrentSquareCell { get; set; }
}
}

View File

@@ -0,0 +1,32 @@
using ConsoleApp.Maps;
namespace ConsoleApp.Vehicle
{
public class Vehicle : IVehicle
{
public int Length { get; }
public int Width { get; }
public int DetectorOffset { get;}
public int DetectorRadius { get;}
public HexCore.Coordinate2D CurrentHexCell { get; set; }
public Heading HexHeading { get; set; }
public Heading SquareHeading { get; set; }
public ICell CurrentSquareCell { get; set; }
public DetectionHead DetectionHead { get; }
public Vehicle(IJsonDeserializor jsonDeserializor)
{
var config = jsonDeserializor.DeserializeObject<VehicleConfiguration>("/Users/brady.bodily/Documents/Repositories/CS5890_Robot_Intelligence/RobotIntelFinal/ConsoleApp/Vehicle/VehicleConfiguration.json");
Length = config.Length;
Width = config.Width;
DetectorRadius = config.DetectorRadius;
DetectorOffset = config.DetectorOffset;
CurrentHexCell = default;
CurrentSquareCell = default;
DetectionHead = new DetectionHead();
}
}
}

View File

@@ -0,0 +1,10 @@
namespace ConsoleApp.Vehicle
{
public class VehicleConfiguration
{
public int Length { get; set; }
public int Width { get; set; }
public int DetectorRadius { get; set; }
public int DetectorOffset { get; set; }
}
}

View File

@@ -0,0 +1,6 @@
{
"Length": 3,
"Width": 2,
"DetectorWidth": 3,
"DetectorOffset": 1
}