Bugün bu sorudan esinlenerek , çeşitli programlama dillerinin bir numpad'i olasılıklara dönüştürebileceği ilginç yollar görmek istiyorum. Döşemeye dayalı oyunlar genellikle karakterinizin bulunduğu yere göre herhangi bir yönde hareket etmek için bir sayısal tuş takımı kullanmanıza izin verir. Bu oyunlar için bir yapay zeka yaparken Math.random() * 8
yeterli değil, bu yüzden hareketin biraz doğal görünmesi ve hissetmesi için biraz yaratıcı olmalıydım.
Bir sayısal tuş takımı şu şekilde tanımlanır:
7 | 8 | 9
- - - - -
4 | x | 6
- - - - -
1 | 2 | 3
Kendinize taşınamayacağınız için 5'in geçersiz bir sayı olduğunu lütfen unutmayın.
Tüm örnekler şu olasılıkları kullanacaktır: [50, 40, 30, 20, 10]
Eğer etrafında olasılıklar üretmek isteseydim 8
, şöyle görünecektir:
40 | 50 | 40
-- | -- | --
30 | xx | 30
-- | -- | --
20 | 10 | 20
Çıktı [20, 10, 20, 30, 30, 40, 50, 40]
(5 atlanmış) veya [20, 10, 20, 30, null, 30, 40, 50, 40]
(5 mevcut)
Onları etrafında oluşturmak isteseydim 1
, şöyle olurdu:
30 | 20 | 10
-- | -- | --
40 | xx | 20
-- | -- | --
50 | 40 | 30
Çıktı [50, 40, 30, 40, 20, 30, 20, 10]
(5 atlanmış) veya [50, 40, 30, 40, null, 20, 30, 20, 10]
(5 mevcut)
Girişi normal şekilde alan (komut satırı, stdin) ve çıktıyı basan tam bir program yazabilir veya çıktıyı yazdıran veya döndüren bir sayı bağımsız değişkenine sahip bir işlev yazabilirsiniz. Programınız veya işleviniz bir sayı kabul etmelidir - üretilecek konum. Şu olasılıkları kullanmalısınız: [50, 40, 30, 20, 10]
(bunların sabit kodlanması gerekmez).
Bayt cinsinden en kısa kod kazanır. Standart boşluklara izin verilmez. Bağlantılı konuya gönderilen cevaplara izin verilmez. Sondaki veya öndeki boşluklara izin verilir. 4
Tercihinize bağlı olarak konumu yok veya boş olarak değerlendirebilirsiniz. Çıktı biçiminde çok seçici değilim - virgülle ayrılmış dizeler veya bir dizi olarak yazdırın.
(Bu benim ilk sorum, beni rahat bırak!)