今日のこの質問に触発されて、さまざまなプログラミング言語がテンキーを確率に変える興味深い方法を見たいと思います。一般的に、タイルベースのゲームでは、テンキーを使用して、キャラクターが現在いる場所に基づいて任意の方向に移動できます。これらのゲームの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)で取得して出力を出力する完全なプログラムを作成するか、出力を出力または返すnumber引数を指定して関数を作成することができます。プログラムまたは関数は、1つの番号、つまり生成する位置を受け入れる必要があります。次の確率を使用する必要があります[50, 40, 30, 20, 10](ハードコーディングする必要はありません)。
バイト単位の最短コードが優先されます。標準の抜け穴は許可されていません。リンクされたスレッドに投稿された回答は許可されません。末尾または先頭のスペースは許可されます。ポジションを扱います4好みに応じて、を欠席または空としてます。出力形式にはあまりこだわりがありません。コンマ区切りの文字列または配列として出力します。
(これは私の最初の質問です、簡単に行ってください!)