public chessBoard(int xDimension, int yDimensions){
this.xLimit = xDimension;
this.yLimit = yDimensions;
public string getLimitString(){
return $"{xLimit}x{yLimit}";
public bool isValidPosition(int xPosition, int yPosition){
public class KnightMoveCalculator
private chessBoard board = new chessBoard(8,8);
private string startingPosition;
private struct Position {
public KnightMoveCalculator(string position){
initKnightPosition(position);
private void initKnightPosition(string position){
throw new ArgumentOutOfRangeException($"The selected starting position of {startingPosition} is invalid for a {board.getLimitString()} board!");
startingPosition = position;
public void printStartingPosition(){
Console.WriteLine("The specified starting position is {0}", startingPosition);
public static void Main()
KnightMoveCalculator knightMoves = new KnightMoveCalculator("A1");