Натхненний цим питанням раніше сьогодні , я хотів би побачити цікаві способи, як різні мови програмування можуть перетворити нумерацію в імовірність. Зазвичай ігри на основі плитки дозволять використовувати numpad для переміщення в будь-якому напрямку залежно від того, де знаходиться ваш персонаж. Коли виготовлення AI для цих ігор Math.random() * 8недостатньо, тому мені довелося проявити трохи творчості, щоб рух виглядав і відчував себе дещо природним.
Цифрова цифра визначається як така:
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як відсутнього або порожнього, залежно від ваших уподобань. Я не надто вибагливий у вихідному форматі - друкуйте його у вигляді розділених комами рядків або у вигляді масиву.
(Це моє перше запитання, будь ласка, просто!)