Ispirato a questa domanda prima di oggi , mi piacerebbe vedere modi interessanti in cui vari linguaggi di programmazione possono trasformare un tastierino numerico in probabilità. Comunemente, i giochi basati su tessere ti permetteranno di usare un tastierino numerico per muoverti in qualsiasi direzione in base alla posizione attuale del tuo personaggio. Quando realizzo un'intelligenza artificiale per questi giochi, Math.random() * 8non è sufficiente, quindi ho dovuto diventare un po 'creativo per rendere il movimento più naturale.
Un tastierino numerico è definito come tale:
7 | 8 | 9
- - - - -
4 | x | 6
- - - - -
1 | 2 | 3
Si noti che 5 è un numero non valido, poiché non è possibile spostarsi su se stessi.
Tutti gli esempi useranno queste probabilità: [50, 40, 30, 20, 10]
Se volessi generare probabilità in giro 8, sarebbe simile a questo:
40 | 50 | 40
-- | -- | --
30 | xx | 30
-- | -- | --
20 | 10 | 20
L'output sarebbe [20, 10, 20, 30, 30, 40, 50, 40](con 5 omesso) o [20, 10, 20, 30, null, 30, 40, 50, 40](con 5 presenti)
Se volessi generarli in giro 1, sarebbe simile a questo:
30 | 20 | 10
-- | -- | --
40 | xx | 20
-- | -- | --
50 | 40 | 30
L'output sarebbe [50, 40, 30, 40, 20, 30, 20, 10](con 5 omesso) o [50, 40, 30, 40, null, 20, 30, 20, 10](con 5 presenti)
È possibile scrivere un programma completo che accetta l'input in qualsiasi modo normale (riga di comando, stdin) e stampa l'output, oppure è possibile scrivere una funzione con un argomento numerico, che stampa o restituisce l'output. Il tuo programma o funzione dovrebbe accettare un numero: la posizione da generare intorno. Dovresti usare queste probabilità: [50, 40, 30, 20, 10](non devono essere codificate).
Vince il codice più breve in byte. Le scappatoie standard non sono ammesse. Le risposte pubblicate nel thread collegato non sono consentite. Sono ammessi spazi finali o iniziali. Puoi considerare la posizione 4come assente o vuota, a seconda delle tue preferenze. Non sono troppo esigente sul formato di output: stampalo come stringhe separate da virgola o come matrice.
(Questa è la mia prima domanda, andate piano con me!)