Giriş
“Yarr !! Kendimizi“ programcı ”olarak adlandıran bir hanımefendi vardı, bir haritayı 'gizli hazinemiz haline getirdi!” Ancak' tuhaf sayılar 'harfleri ile yazılmış! ”E5, N2, E3” Çılgınlık! Uygun bir hazine haritası bile yazamıyorum, 'işe yaramaz sürün. Bizi düzeltin! Size hazineden payını hediye edeceğiz!'
Zorluk Açıklaması
Bir korsan grubu hazine haritasını okumakta zorlanıyor. Daha piratey bir forma dönüştürmek için bir program yazabilir misiniz?
Giriş olarak, orijinal hazine haritasını alacaksınız. Virgülle ayrılmış dizelerin bir listesi, her biri bir harf bölümünden (korsanlara hangi yöne girmeleri gerektiğini söyler) ve bir sayı bölümünden (bu korsanlara bu yönde kaç adım atmaları gerektiğini söyleyen ) oluşan bir liste . Örneğin, aşağıdaki hazine haritası:
E2,N4,E5,S2,W1,S3
"Doğuya iki adım yürüyün, kuzeye dört adım yürüyün, doğuya beş adım yürüyün, güneyden iki adım yürüyün, batıya bir adım yürüyün, sonra güneyden üç adım yürüyün" anlamına gelir.
Çıktısı olarak bir grafik şeklinde çıkış haritası, karakterleri kullanarak olacak sen >
, ^
, v
, ve <
işaretçiler olarak. Yukarıdaki girişin çıktısı:
>>>>>v
^ v
^ v<
^ v
>>^ X
X
Bunun yerine güneydeki son adımı değiştirdiğimize dikkat edin . Bunun nedeni, son adımın hazinenin olduğu ve hepimizin bildiği gibi, korsanların hazine haritalarında X'e sahip olmaları gerektiği, aksi takdirde nasıl okuyacaklarını bilemeyecek olmalarıdır.
Bu arada, harita kendisini asla geçmeyecek, bu yüzden çakışmalarla uğraşmak konusunda endişelenmenize gerek yok. Ayrıca, çıktının sonunda izleyen yeni bir satırın olmasına izin verilir.
Örnek Girişler ve Çıkışlar
S5,W2
v
v
v
v
v
X<
N1,E1,S1,E1,N1,E1,S2
>v>v
^>^X
N1
X
N6,E6,S6,W5,N5,E4,S4,W3,N3,E2,S2,W1,N2
>>>>>>v
^>>>>vv
^^>>vvv
^^^Xvvv
^^^^<vv
^^^<<<v
^^<<<<<
E21,S2
>>>>>>>>>>>>>>>>>>>>>v
X
N12,E11,S12,W2,N4
>>>>>>>>>>>v
^ v
^ v
^ v
^ v
^ v
^ v
^ v
^ v
^ X v
^ ^ v
^ ^ v
^ ^<<
X
adımı işaretlemesi gerektiğini düşünüyorum, diğer tüm hamleler de sayıldığı gibi. Son adımın N3 olduğunu hayal edin: kuzeye üç adım yürüyüp kazıyorsunuz, ancak burada hiçbir şey yok, bunun yerine 2 adım yürümek zorunda kaldınız. Mevcut kuralı saklamanızın sakıncası yok, çünkü ele alınması gereken küçük bir köşe davası ekliyor. Ama o laddie'ye ne olduğunu unutma.