Angespornt durch diese Frage heute möchte ich interessante Möglichkeiten sehen, wie verschiedene Programmiersprachen einen Nummernblock in Wahrscheinlichkeiten verwandeln können. In kachelbasierten Spielen können Sie in der Regel mit einem Nummernblock in eine beliebige Richtung navigieren, je nachdem, wo sich Ihr Charakter gerade befindet. Wenn eine KI für diese Spiele Math.random() * 8nicht ausreicht, musste ich ein wenig kreativ werden, damit die Bewegung etwas natürlich aussieht und sich anfühlt.
Ein Nummernblock ist wie folgt definiert:
7 | 8 | 9
- - - - -
4 | x | 6
- - - - -
1 | 2 | 3
Bitte beachten Sie, dass 5 eine ungültige Zahl ist, da Sie nicht auf sich selbst übergehen können.
In allen Beispielen werden diese Wahrscheinlichkeiten verwendet: [50, 40, 30, 20, 10]
Wenn ich Wahrscheinlichkeiten generieren wollte 8, würde das so aussehen:
40 | 50 | 40
-- | -- | --
30 | xx | 30
-- | -- | --
20 | 10 | 20
Die Ausgabe wäre [20, 10, 20, 30, 30, 40, 50, 40](mit 5 weggelassen) oder [20, 10, 20, 30, null, 30, 40, 50, 40](mit 5 vorhanden)
Wenn ich sie generieren wollte 1, würde das so aussehen:
30 | 20 | 10
-- | -- | --
40 | xx | 20
-- | -- | --
50 | 40 | 30
Die Ausgabe wäre [50, 40, 30, 40, 20, 30, 20, 10](mit 5 weggelassen) oder [50, 40, 30, 40, null, 20, 30, 20, 10](mit 5 vorhanden)
Sie können ein vollständiges Programm schreiben, das die Eingabe auf jede übliche Weise (Befehlszeile, stdin) übernimmt und die Ausgabe ausgibt, oder Sie können eine Funktion mit einem Zahlenargument schreiben, das die Ausgabe ausgibt oder zurückgibt. Ihr Programm oder Ihre Funktion sollte eine Zahl akzeptieren - die Position, um die herum generiert werden soll. Sie sollten diese Wahrscheinlichkeiten verwenden: [50, 40, 30, 20, 10](Sie müssen nicht fest codiert sein).
Kürzester Code in Bytes gewinnt. Standardlücken sind nicht zulässig. Antworten, die im verlinkten Thread gepostet wurden, sind nicht zulässig. Nachgestellte oder führende Leerzeichen sind zulässig. Sie können die Position 4je nach Wunsch als abwesend oder leer behandeln . Ich bin nicht zu wählerisch im Ausgabeformat - drucken Sie es als durch Kommas getrennte Zeichenfolgen oder als Array aus.
(Dies ist meine erste Frage, schont mich!)