Oyunda Pickomino , onlara farklı bir pozitif tamsayı olarak masaya, her ortasında yatan birçok fayans vardır. Her turda oyuncular zarları belirli bir şekilde yuvarlar ve negatif olmayan bir tam sayı olan bir puan alırlar.
Artık oyuncu, skorundan hala daha düşük veya eşit olan en yüksek numaraya sahip olan döşemeyi alır, döşemeyi ortadan kaldırır ve yığına ekler. Ortadaki tüm sayılar oyuncunun skorundan daha yüksek olduğu için bu mümkün değilse, oyuncu yığındaki en üstteki taşı kaybeder (en son eklenen), bu da ortasına döndürülür. Oyuncunun döşemesi kalmadıysa hiçbir şey olmaz.
Meydan okuma
Oyunu kendilerine karşı oynayan bir oyuncuyu simüle edin. Ortadaki fayansların bir listesini ve oyuncunun aldığı puanların bir listesini alırsınız. Tüm dönüşler değerlendirildikten sonra oynatıcının döşemelerinin bir listesini döndürün.
Zorluk kuralları
- Döşemeli listenin sıralandığını ve iki kez tamsayı içermediğini varsayabilirsiniz.
- Her iki girdi listesini istediğiniz sırada alabilirsiniz
- Çıktı, yığındaki döşemelerin sırasını korumak zorundadır, ancak listenin yukarıdan aşağıya mı yoksa aşağıdan yukarıya mı sıralanacağına karar verebilirsiniz.
Genel kurallar
- Bu kod golf , bayt en kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için olabildiğince kısa bir cevap bulmaya çalışın. - Varsayılan I / O kuralları ile cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, fonksiyonlar / yöntem, uygun parametreler ve dönüş tipi, tam programlar ile kullanılabilir.
- Standart Boşluk Doldurma yasaktır.
- Mümkünse, lütfen kodunuz için bir test içeren bir bağlantı ekleyin (örn. TIO ).
- Cevabınız için bir açıklama eklemeniz önerilir.
Misal
(6. test çantasından alınmıştır)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
İlk puan 22'dir, bu yüzden ortadaki en yüksek karoyu al = 22, ki bu da 22'dir.
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [22, 22, 23, 21, 24, 0, 22]
Bir sonraki skor 22, bu yüzden ortadaki en yüksek karoyu al <= 22.
Middle: [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 21]
Remaining scores: [22, 23, 21, 24, 0, 22]
Bir sonraki puan 22'dir, ancak <= 22 olan tüm sayılar zaten alınmıştır. Bu nedenle, oyuncu yığının (21) ortasına döndürülen en üst döşemeyi kaybeder.
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [23, 21, 24, 0, 22]
Sonraki skorlar 23, 21 ve 24, bu yüzden oyuncu bu fayansları ortadan alıyor.
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
Oyuncu büst ve sıfır yapar. Bu nedenle, 24 numaralı (yığının en üstünde) karo ortaya geri döner.
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
Son skor 22, ancak tüm karolar <= 22 zaten alınmış, bu yüzden oyuncu destedeki en üstteki karoyu kaybediyor (21).
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
Test senaryoları
(en üstteki kutucuk çıktı listesinde en son olacak şekilde)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [26, 30, 21]
Output: [26, 30, 21]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [35, 35, 36, 36]
Output: [35, 34, 36, 33]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23]
Output: [23]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: []
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23, 0]
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Output: [22, 23]
Tiles: [1, 5, 9, 13, 17, 21, 26]
Scores: [6, 10, 23, 23, 23, 1, 0, 15]
Output: [5, 9, 21, 17, 13, 1]
Tiles: []
Scores: [4, 6, 1, 6]
Output: []