Japonca'nın romanlaştırılması, Japonca metni Latin karakterlerine dönüştürüyor. Bu mücadelede, giriş olarak Japonca karakterlerden oluşan bir dizge verilecek ve bunları doğru ASCII dizgisine dönüştürmeniz bekleniyor.
Bilmeniz Gerekenler
Japonca dilinin üç yazı sistemi vardır: hiragana (kısa kelimeler için kullanılan kıvrımlı dil), katakana (diğer dillerden ödünç alınan sesler ve kelimeler için kullanılan açı açısı) ve kanji (aslen Çinli olan yoğun karakterler). Bu mücadelede sadece hiragana için endişeleneceğiz.
Hiragana hecesinde 46 karakter vardır. Her karakter bir heceyi temsil eder. Karakterler ilk ses (ünsüz) ve ikinci ses (ünlü) tarafından düzenlenir. Sıradaki sütunlar aiueo
.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(bu tabloyu kopyalayıp yapıştırırsanız, U + 3000 ideografik boşluklarını y ve w boşluklarını kullandığımı unutmayın.)
Bu nedenle, örneğin, あ と め bir çıktı üretmelidir atome
. İlk karakter, a
ikincisi to
ve üçüncüsü me
.
İstisnalar
Herhangi bir güzel dilde olduğu gibi, Japonca da kendi kurallarında istisnalar vardır ve hiragana masası da birkaç tane vardır. Bu karakterler, tablodaki konumlarından biraz farklı olarak telaffuz edilir:
し: shi
, değil si
ち: chi
, değil ti
つ: tsu
, değil tu
ふ: fu
, değilhu
Dakuten ゛
'Daututen' kelimesi 'çamurlu işaret' anlamına gelir: dakuten sesleri kendi eşdeğerlerine dönüştürür (genellikle); örneğin, かka
か ゛ olur ga
. Değişikliklerin tam listesi:
k
→ g
s
→ z
t
→ d
h
→b
İstisnalar da değişiyor: し ゛: ji
(veya zhi
), zi
ち ゛: ji
değil, di
つ ゛: dzu
değil, du
(ふ ゛ beklediğin gibi davranıyor; istisna değil)
Handakuten, sıraya uygulanan character ek bir karakterdir h
. Bir karakterden sonra yerleştirilirse, karakterin sesini p
yerine değiştirir b
.
Hem dalkuten hem de handakuten bireysel karakter olarak verilecek. Önceden oluşturulmuş formlarla veya birleştirme karakterleriyle uğraşmanıza gerek kalmayacak.
Küçük Karakterler
Son olarak, bazı karakterlerin küçük versiyonları vardır. Onlardan önce veya sonra gelen karakterleri değiştirir.
ゃ ゅ ょ
Bunlar küçük şekilleridir ya
, yu
ve yo
. Yalnızca i
-column içindeki seslerden sonra yerleştirilirler ; kaldırırlar i
ve seslerini eklerler. Böylece, き や dönüşür kiya
; き ゃ dönüşür kya
.
Sonra chi
veya shi
(veya dakuten-ed formları) yerleştirilirse, o y
da kaldırılır. し ゆshiyu
; し ゅshu
.
Başa çıkmanız gereken son şey küçük tsu
. What ne olursa olsun peşinden gelen ünsüzü iki katına çıkarır; başka bir şey yapmaz. Örneğin, き たkita
; き っ たkitta
.
Özet, Giriş ve Çıkış
Programınız harfleri çevirebilmelidir: 46 temel hiragana, dakuten ve handakuten formları ve küçük karakterli kombinasyonlar.
Tanımsız davranış şunları içerir: küçük ya
, yu
ve yo
bir karakterin sonunda, bir karakterin sonunda i
küçük tsu
, etkilenmemiş bir karakterde daututen, p
karakter olmayan bir karakterde handakuten ve yukarıdaki açıklamada / açıklamada belirtilmeyen herhangi bir şey.
Tüm girdilerin geçerli olduğunu ve yalnızca yukarıda belirtilen Japonca karakterleri içerdiğini varsayabilirsiniz.
Vaka çıktıda önemli değil; Ayrıca değiştirebilir r
ile l
veya yalnız n
olan m
. Çıktı, her hecenin arasında bir boşluk bırakabilir veya hiç boşluk bırakılmayabilir.
Bu kod-golf : bayt cinsinden en kısa kod kazanır.
Test Kılıfları
Her bir bölüm için birçok test durumu şartnamede verilmiştir. Bazı ek durumlar:
ひ ら か ゛ な → hiragana
か た か な → katakana
た ゛ い き ゃ く て ん ん い は ゛ ん → daigyakutensaiban
ふ ゜ ろ く ゛ み ん く く ゛ ゜ す ゛ こ う と ゛ こ ゛ る ふ ふ → puroguramingupazurucoudogorufu
か ゛ ん ほ ゛ て → ganbatte
notlar
Burada yazdıklarım dışında fazla Japonca bilmiyorum. Herhangi bir hata yaptıysam lütfen bana bildirin.
Aslında ben de katakana eklemeyi düşünüyordum (bu yüzden ingilizce çevirisi test durumum biraz daha doğru olabilirdi), ancak bu kod golf mücadelesi için çok fazla olurdu.
Unicode adları, her karakterin ayrı ayrı, ancak istisnalar olmadan çevrilmesini içerir. Bu size yardımcı olabilir veya olmayabilir.
İki yazım hatasını düzeltmek için squeamishossifrage'a teşekkürler!
Bu çok uzunsa özür dilerim; Hiragana'nın tuhaflıklarının çoğunu bu zorluğa sığdırmaya çalıştım, ancak bazı şeylerin (sadece küçük ünlü hiraganalar gibi, bazı ünsüzlerin önünde n'den m'ye değişiyor ve tekrarlama işareti gibi) mücadeleyi yönetilebilir kılmak zorunda kaldım.
Başlık için hiç üzgünüm. Bu bir şaheser.
っし
olmak sshi
ya shshi
?
I'm not at all sorry for the title. It's a masterpiece.
Aşağı oy verildi
きっった
?