Yeraltı Kraliyet Bilimcisi Alphys, yeni bir bulmaca için bir prototip tamamladı. Ancak, test etmek isteyen birini bulamıyor gibi görünüyor.
Yapbozunun kuralları aşağıdaki gibidir:
Amaç, sol taraftaki en ortadaki karodan başlayarak sağ tarafa ulaşmaktır. Çift sayılı yüksekliklere sahip bulmacalar için, iki orta karonun altından başlayın. (Örnekler: Sıfır dizinli 4x4 dizisinde, başlangıç konumu [2,0] - satır 2, sütun 0 olacaktır. Sıfır dizinli 5x5 dizisinde başlangıç konumu [2,0] - satır 2, sütun olacaktır. 0)
Her renkli döşemenin kendi "sadist" işlevi vardır:
- Pembe ve yeşil fayanslar ("P" ve "G" olarak temsil edilir) hiçbir şey yapmaz
- Kırmızı ve sarı fayanslar ("R", "Y") geçilmezdir.
- Turuncu fayans ("O") oyuncuyu portakal gibi kokuyor
- Mor fayanslar ("U") oyuncuyu karşı karşıya oldukları yönde bir sonraki karoya zorlar ve limon gibi kokturur
- Mavi karolar ( "B") olduğu sürece oyuncu yok gibi fena değil portakal gibi kokuyor.
Lezzet mekaniğini açıklığa kavuşturmak için, bir oyuncunun kokusu süresiz olarak veya farklı kokulu bir karo tarafından geçersiz kılınana kadar, yani bir oyuncu turuncu bir karo üzerine basarsa, mor bir karo üzerine basana kadar portakal gibi kokar.
Ek olarak, mavi bir karoya dikey veya yatay olarak yerleştirilmiş sarı bir karo, mavi karonun da geçilmez olmasına neden olacaktır.
Göreviniz, bulmacanın düzenini giriş olarak temsil eden ve hem orijinal bulmacayı hem de çözülmüş bulmacayı yıldız işaretleri veya bazılarıyla çıktı olarak gösteren 2 boyutlu bir karakter dizisini (veya 1D dize dizisini veya başka bir geçerli biçimi) kabul eden bir program veya işlev yazmaktır. diğer karakter doğru yolu gösterir. Verilen bulmacanın çözülebilir olduğunu varsayın.
Bu bulmacayı örnek olarak kullanın:
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
Programınızın çıktısı:
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
BGYBG
PGPBG
*****
OUGYB
PPOPP
Kullanılan tüm bulmaca kullanılarak oluşturulmalıdır bu .
Standart kod golf kuralları geçerlidir. En iyi cevaplar her dil için en kısa olacaktır. Yanıtlar dili, bayt sayısını ve üç test vakasını içermelidir. İlk ikisi seçtiğiniz herhangi bir düzen olabilir, ancak üçüncüsü şöyle olmalıdır:
RRRR
RPPR
PUOR
RPBP