#このプログラムを書いたきっかけ
僕は,シンガーソングライター山根万理奈さんのファンです.山根万理奈さんはよく名前の漢字を間違えられます.万が真だったり,理が里だったり,奈が菜だったりします.そこで正しく名前を書いてもらうためにはどうしたらよいだろうと考えた結果次のプログラムが生まれました.
#Rubyコード
どちらの漢字が選ばれるかはランダムです.最後まで正しい名前が出力された場合は"Yes!", 途中で間違えた場合は"No!"と出力し,はじめから言い直します.
"Yes!"が出るまで名前を言い続けます.
いわゆる「ズンドコキヨシ」の派生とも考えられます.
ma_ri_na.rb
def kiminonaha(c)
ma=["万", "真"]
ri=["理", "里"]
na=["奈", "菜"]
case
when c==0
x=rand(ma.length)
puts ma[x]
x
when c==1
x=rand(ri.length)
puts ri[x]
x
when c==2
x=rand(na.length)
puts na[x]
x
end
end
room=[[1,0],[2,0],[3,0],[nil]]
i=0
until room[i]==[nil]
if kiminonaha(i)==0
i=room[i][0]
else
puts "No!"
i=room[i][1]
end
end
#参考にさせてもらったページ
コードの書き方は以下の考え方を参考にさせてもらいました.
ズンドコキヨシで決定性有限オートマトン (DFA)