public void MoveSoldierPiece(BoardLocation fromLocation, BoardLocation toLocation)
        {
            SoldierPiece p  = GetSoldierPiece(fromLocation);
            SoldierPiece p2 = GetSoldierPiece(toLocation);

            if (p is EmptyPiece)
            {
                throw new ApplicationException($"Location {fromLocation.Coordinates()} does not contain a piece to move.");
            }
            if (!(p2 is EmptyPiece))
            {
                p.Challenge(p2);
            }
            else
            {
                p.Move(toLocation);
            }
        }