bool isOdd = -3 % 2 == 1;Yeah, I struggled with that some time ago
Start = -20 End = -10 CurrentPosition = -15 ? Start + (CurrentPosition + 7 - Start) % (End - Start + 1) && 19But in C#, you have to use the Mod extension method if you want that to work
/// <summary> /// adds a value to the currentValue in a range. Values outside the range are mapped into the range with modulo /// </summary> /// <param name="currentValue"></param> /// <param name="valueToAdd"></param> /// <param name="rangeStart"></param> /// <param name="rangeEnd"></param> /// <returns></returns> public static int Add(int currentValue, int valueToAdd, int rangeStart, int rangeEnd) { return MapValueInRange(currentValue + valueToAdd, rangeStart, rangeEnd); } //______________________________________________________________________ private static int MapValueInRange(int currentValue, int rangeStart, int rangeEnd) { // (1) convert to base zero by subtracting rangeStart // (2) take the mod() // (3) add rangeStart return (currentValue - rangeStart).Mod(rangeEnd - rangeStart + 1) + rangeStart; }