Aşırı kilo almasından endişe duyan Bayan Pac-Man'ın tavsiyesi üzerine, Pac-Man günlük Pac-Dot alımını takip etmeye karar vermiştir. Labirentin içindeki belirli bir yoldaki Pac-Dots sayısını saymasına yardım edin!
Labirent
Labirentin kendi kodlamasını oluşturmanıza yardımcı olmak için, burada bazı ham verileri alabilirsiniz .
Pac-Man'in yolculuğu
Bu zorluk bağlamında aşağıdaki kurallar geçerlidir:
- İlk olarak, iyi haber: hayaletler orada değil.
- Pac-Man her zaman yarışına yukarıdaki resimde gösterilen pozisyonda başlayıp Doğu'ya doğru ilerler. Başlangıç konumunda Pac-Dot yoktur.
- Düz bir yolu takip ettiği sürece, sonraki karelere ilerlemeye devam eder.
- Kullanılabilir başka bir yol olmadan 90 ° 'lik bir dönüşle karşılaştığında (haritadaki turuncu kareler), dönüşü otomatik ve sistematik olarak alır.
- Birkaç yolun mevcut olduğu bir kavşakla karşılaştığında (haritada yeşil kareler), aynı yöne devam edebilir - eğer mümkünse - veya başka bir yön seçebilir (U dönüşü yapmak dahil).
- Pac-Man, labirentin orta sol veya orta sağ tarafındaki çıkışlardan birinden geçtiğinde, hemen karşı tarafta tekrar belirir.
- Pac-Man, takip ettiği yolda tüm Pac-Dots'u yer. Bir Pac-Dot yenildiğinde labirentten uzaklaştırılır.
Meydan okuma
Giriş
Pac-Man'in ulaşacağı kavşaklardaki davranışını açıklayan bir ip size verilecektir. Bu dize aşağıdaki karakterlerden oluşacaktır:
L
: 90 ° sola dönünR
: 90 ° sağa dönünF
: ileri git (yön değişikliği yok)B
: geriye git (U dönüşü yap)
Tüm karakterler işlendiğinde, Pac-Man karşılaştığı bir sonraki kavşakta durur.
Çıktı
Giriş yolu boyunca tüketilen Pac-Dots sayısını yazdırmanız veya yazdırmanız gerekir.
kurallar
- Tam bir program veya bir fonksiyon yazabilirsiniz.
- Girdiyi büyük veya küçük harf olarak, bir dize veya karakter dizisi olarak alabilirsiniz. Ayrıca diğer karakterleri (ancak yön başına yalnızca bir karakter) veya tamsayıları kullanabilirsiniz
[0 .. 9]
. Bunu yaparsanız, lütfen cevabınızı açıkça belirtiniz. - Girişin her zaman geçerli olduğunu varsayabilirsiniz. (Aşağıdaki jsFiddle, hataları algılar, ancak yapmamanız gerekir.)
- Bu kod golf, yani bayt cinsinden en kısa kod kazanır.
- Standart boşluklar yasaktır.
İpucu
Labirentin şeklini tam olarak depolamak gerekli olmayabilir.
Test vakaları ve demo
Aşağıdaki test durumları - veya başka bir giriş - bu jsFiddle'da test edilebilir .
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!