Ограничение индекса в рамках диапазона


Возьмем простейшую образную задачу: нужно ограничить движение
солдатика, который умеет двигаться вправо и влево так,
чтобы он не убегал за пределы экрана.

Допустим, что координата X может приниматься значения: 0,1,2,3,4,5,6

Тогда формулы движения будут такими:

# ВПРАВО
x = (x + 1) mod 7

# ВЛЕВО
x = (x + 6) mod 7

Если солдатик уходит за правую границу - он появляется слева
и наоборот. В более общем случае, если координаты смещены на dx=-2,
и могут принимать значения -2,-1,0,1,2,3,4, формула имеет вид:

# ВПРАВО
x = (x - dx + 1) mod 7 + dx 

# ВЛЕВО
x = (x - dx + 6) mod 7 + dx

Суть всех этих формул в том, что с их помощью
мы избегаем применения условий.