number outside chosen range? select the closest viable number to the chosen number.
from random import randint
def closest_value(value, iterable):
storage = []
for i in iterable:
storage.append((abs(value - i), i))
result = min(storage)
return result[1]
for x in range(0, 10):
variant = randint(-20, 20)
if variant > 4 or variant < 1:
# generate viable number
v = variant
variant = closest_value(variant, range(1, 5))
print(f"Original {v} : New {variant}")
Output :
Original 13 : New 4
Original -1 : New 1
Original -5 : New 1
Original -16 : New 1
Original 17 : New 4
Original -11 : New 1
Original 13 : New 4
Original 11 : New 4
Original 6 : New 4
Original 16 : New 4
Locked Out