public int getMoveValue(int givenID) { PlayerSteps newStep = new PlayerSteps(gameMesh); int moveValue = 0; foreach (PlayerSteps.Directions selectedDir in (PlayerSteps.Directions[])Enum.GetValues(typeof(PlayerSteps.Directions))) { int selectedID = givenID; bool endOfTable = true; int counter = 0; while (endOfTable) { if (((selectedID + 1) % 8 == 0 && (selectedDir == PlayerSteps.Directions.DOWN || selectedDir == PlayerSteps.Directions.DOWNLEFT || selectedDir == PlayerSteps.Directions.DOWNRIGHT)) || (selectedID % 8 == 0 && (selectedDir == PlayerSteps.Directions.UP || selectedDir == PlayerSteps.Directions.UPLEFT || selectedDir == PlayerSteps.Directions.UPRIGHT)) || (selectedID > 55 && (selectedDir == PlayerSteps.Directions.RIGHT || selectedDir == PlayerSteps.Directions.DOWNRIGHT || selectedDir == PlayerSteps.Directions.UPRIGHT)) || (selectedID < 8 && (selectedDir == PlayerSteps.Directions.LEFT || selectedDir == PlayerSteps.Directions.DOWNLEFT || selectedDir == PlayerSteps.Directions.UPLEFT))) { endOfTable = false; counter = 0; } //enemy piece else if (gameMesh[selectedID + newStep.directionInT(selectedDir)].field_owner == 1) { counter++; } //self piece else if (gameMesh[selectedID + newStep.directionInT(selectedDir)].field_owner == 2) { endOfTable = false; } //no piece else { endOfTable = false; counter = 0; } selectedID += newStep.directionInT(selectedDir); } moveValue += counter; } return(moveValue); }