Вдохновленный этим вопросом ранее сегодня , я хотел бы увидеть интересные способы, которыми различные языки программирования могут превратить цифровую цифру в вероятности. Как правило, игры на основе плиток позволяют вам использовать цифровую клавиатуру для перемещения в любом направлении в зависимости от того, где находится ваш персонаж. При создании ИИ для этих игр Math.random() * 8
этого недостаточно, поэтому мне пришлось проявить немного креативности, чтобы движение выглядело и ощущалось несколько естественным.
Numpad определяется так:
7 | 8 | 9
- - - - -
4 | x | 6
- - - - -
1 | 2 | 3
Обратите внимание, что 5 - недопустимый номер, так как вы не можете перейти на себя.
Все примеры будут использовать эти вероятности: [50, 40, 30, 20, 10]
Если бы я хотел генерировать вероятности вокруг 8
, это выглядело бы так:
40 | 50 | 40
-- | -- | --
30 | xx | 30
-- | -- | --
20 | 10 | 20
Выход будет [20, 10, 20, 30, 30, 40, 50, 40]
(с 5 опущенными) или [20, 10, 20, 30, null, 30, 40, 50, 40]
(с 5 присутствующими)
Если бы я хотел генерировать их вокруг 1
, это выглядело бы так:
30 | 20 | 10
-- | -- | --
40 | xx | 20
-- | -- | --
50 | 40 | 30
Выход будет [50, 40, 30, 40, 20, 30, 20, 10]
(с 5 опущенными) или [50, 40, 30, 40, null, 20, 30, 20, 10]
(с 5 присутствующими)
Вы можете написать полную программу, которая принимает входные данные любым обычным способом (командная строка, stdin) и печатает выходные данные, или вы можете написать функцию с числовым аргументом, которая печатает или возвращает выходные данные. Ваша программа или функция должна принимать одно число - положение, которое нужно генерировать. Вы должны использовать эти вероятности: [50, 40, 30, 20, 10]
(они не должны быть жестко закодированы).
Самый короткий код в байтах побеждает. Стандартные лазейки запрещены. Ответы, размещенные в связанной ветке, запрещены. Трейлинг или пробелы допускаются. Вы можете рассматривать положение 4
как отсутствующее или пустое, в зависимости от ваших предпочтений. Я не слишком требователен к формату вывода - выведите его в виде строк через запятую или в виде массива.
(Это мой первый вопрос, успокойся!)