意馬心猿 - いばしんえん

欲望のままにプログラミング

<Ruby/>しりとりでパナキにつなげるプログラム

f:id:santamalia:20160218111817j:plain

”チョコレート -> トリ -> リンゴ -> ゴリラ -> ラッパ -> パナキで〜す!”

 

”あれ?そーいえば芸人のサバンナ八木さんがやってるパナキって、木構造を利用してプログラムにできそうやな”

 

というわけで、今日は、入力された単語をただただ”パナキ”につなげるだけのプログラムを作りました。

</> Panaki.rb

 

 

 f:id:santamalia:20160215191439p:plain

名前だけみると、なんかカッコイイ!

 

ですが、やっていることは単純で、結局木構造ですらありません。

 

 

まず、何よりパナキにつなげるための単語のデータが重要です。

 

このネタ、もともと大学の課題がきっかけで思いついたのですが、”パナキ”でググってみると、なんと、パナキ 究極のパナキ攻略法という記事があったのです!

 

そこには、濁点以外の五十音すべての言葉から、パナキへの最短ルート(?)が書かれていました。

 

僕はそこに、オリジナルで濁点にも対応させて、それをテキストファイルに書き下していきました。

 

メソッドを定義しているのはあまり意味がないですが、このころはruby初心者で色々試していたので、お気になさらず。

 

他にも、よくよく考えたら、配列を作っていくとことか、stripメソッドじゃなく、splitメソッドで済みそうだなとか、色々思ったりするのですが、そこはスルーでお願いします。

 

そして、panaki.txt書き下す時に木構造のように(インデントでわかりやすくしてます)書き下しています。

なおかつ、Panaki.rbの本体は

until word == "パナキ" do
print "#{word} -> "
until word[word.length-1,word.length] == array[j][0,1] do
j += 1
end
word = array[j]
j = 0
end
puts "#{word}で〜す!"

 で、word(初期値:入力された文字列)の末尾の文字と、先頭の文字が一致する単語が見つかるまで上からpanaki.txtを上から読み込み、一致したら、一致した単語をwordに代入し、wordが”パナキ”に一致するまで、それをひたすら繰り返す、というものです。

 

いかがでしたでしょうか。

 

以上パナキプログラムでした。

 

Effective Ruby [ ピーター・J.ジョーンズ ]

価格:3,456円
(2016/2/15 19:17時点)
感想(0件)

たのしいRuby第4版 [ 高橋征義 ]

価格:2,808円
(2016/2/15 19:18時点)
感想(1件)