Zarları Yuvarlamak
Bir süre önce zar atıyordum ve bir meydan okuma düşündüm.
Girişten alınan bir ağ ve hareketlerin bir listesi olan küp göz önüne alındığında, sonunda alttaki kareyi bulun.
Bu görüntüyü buradaki örnekler için kullanacağım.
Giriş
Bir hareket listesi içeren bir dize alırsınız. Dize yalnızca büyük ASCII N, S, W ve E harflerini içerir. Bunlar, küpün bu yönde bir adım döndürülmesine karşılık gelir.
Resimde, bir N alt yüzü 6 yapacaktı. Bu görüntüde, Kuzey kameradan uzakta, Güney doğru, Doğu sağda ve Batı solda.
Ayrıca aşağıdaki biçimde bir dize alırsınız: 1P 2P 3P 4P 5P 6P, burada her P, N, S, W, E, T ve B'den bir konumdur. T & B alt ve üsttür.
Sayılar bu sayıya sahip yüzdür ve harf yüzün bulunduğu konumu temsil eder. Net değilse, net her zaman sayıya göre sıralanacaktır, bu nedenle 1P 2P 3P 4P 5P 6P, asla 2B 1T 3N 4S 5W 6E.
Görüntüdeki konum 1S 2B 3E 4W 5T 6N'dir.
Çıktı
Programınız alt tarafı temsil eden bir sayı çıkarmalıdır.
Test Durumları
(nothing), 1S 2B 3E 4W 5T 6N -> 2
N, 1S 2B 3E 4W 5T 6N -> 6
NS, 1S 2B 3E 4W 5T 6N -> 2
NWS, 1S 2B 3E 4W 5T 6N -> 2
NWSNWS, 1S 2B 3E 4W 5T 6N -> 2
NWSS, 1S 2B 3E 4W 5T 6N -> 3
NNNNNN, 1S 2B 3E 4W 5T 6N -> 5
SNWEEWS, 1N 2T 3E 4W 5B 6S, 6
SNEEWS, 1N 2T 3W 4S 5B 6E, 4
Diğer Kurallar
Ayrıca, küpün muhtemelen bir çeşit sürtünme ile sonsuz düz bir düzlemde olduğunu varsayabilirsiniz.
Standart boşluklar, bulamıyorum bile, izin vermedi.
Geçersiz giriş için, kodunuz kıyameti başlatmak dışında herhangi bir şey yapabilir.
Bu program zarlarıma uyması gerektiğinden, olabildiğince küçük olmalıdır. Klasörler gibi diller için bazı istisnalar dışında bayt sayıyorum .
(nothing) -> 2
hiçbir ağın sağlanmadığı anlamına mı geliyor yoksa orada bir ağ mı olmalı?