Zainspirowany dzisiaj tym pytaniem chciałbym zobaczyć ciekawe sposoby, w jakie różne języki programowania mogą zamienić numpad w prawdopodobieństwa. Zwykle gry oparte na kafelkach pozwalają używać klawiatury numerycznej do poruszania się w dowolnym kierunku w zależności od tego, gdzie aktualnie znajduje się twoja postać. Tworzenie AI dla tych gier Math.random() * 8nie jest wystarczające, więc musiałem wykazać się kreatywnością, aby ruch wyglądał naturalnie.
Numpad jest zdefiniowany jako taki:
7 | 8 | 9
- - - - -
4 | x | 6
- - - - -
1 | 2 | 3
Uwaga: 5 to nieprawidłowy numer, ponieważ nie możesz przejść do siebie.
Wszystkie przykłady wykorzystają następujące prawdopodobieństwa: [50, 40, 30, 20, 10]
Gdybym chciał wygenerować prawdopodobieństwa 8, wyglądałoby to tak:
40 | 50 | 40
-- | -- | --
30 | xx | 30
-- | -- | --
20 | 10 | 20
Wyjście byłoby [20, 10, 20, 30, 30, 40, 50, 40](z pominięciem 5) lub [20, 10, 20, 30, null, 30, 40, 50, 40](z obecnością 5)
Gdybym chciał je wygenerować 1, wyglądałoby to tak:
30 | 20 | 10
-- | -- | --
40 | xx | 20
-- | -- | --
50 | 40 | 30
Wyjście byłoby [50, 40, 30, 40, 20, 30, 20, 10](z pominięciem 5) lub [50, 40, 30, 40, null, 20, 30, 20, 10](z obecnością 5)
Możesz napisać pełny program, który pobiera dane wejściowe w dowolny zwykły sposób (wiersz poleceń, standardowe wyjście) i wypisuje dane wyjściowe, lub możesz napisać funkcję z argumentem liczbowym, która wypisuje lub zwraca dane wyjściowe. Twój program lub funkcja powinna zaakceptować jeden numer - pozycję do wygenerowania wokół. Powinieneś użyć tych prawdopodobieństw: [50, 40, 30, 20, 10](nie muszą być zakodowane na stałe).
Najkrótszy kod w bajtach wygrywa. Standardowe luki są niedozwolone. Odpowiedzi opublikowane w połączonym wątku są niedozwolone. Dozwolone są spacje końcowe lub wiodące. Możesz traktować pozycję 4jako nieobecną lub pustą, w zależności od preferencji. Nie jestem zbyt wybredny co do formatu wyjściowego - wydrukuj go jako ciągi rozdzielone przecinkami lub jako tablicę.
(To moje pierwsze pytanie, spokojnie!)