Ruby | 単語の組み合わせでブレーンストーミングもどきをするためのRubyスクリプト
概要
単語の組み合わせでブレーンストーミングもどきをするためのRubyスクリプトを作成しました
詳細
既存のキーワードの組み合わせで新たな発想を得られる場合があります。
人間の発想だとどうしても、意味のある組み合わせをしてしまいがちなので、
プログラムで無作為に組み合わせを抽出します。
キーとなる単語群からランダムに X 個の単語を出力するプログラムを作成して
アイデアフラッシュの足しにしたいと思います。
仕様
CLIの仕様について。
第1引数: 単語を改行区切りで記述したテキストファイル
第2引数: 組み合わせて出力する単語数
第3引数: 組み合わせを出力する回数
ruby brain_connect.rb words 4 10
サンプル
CodeIQの問題のためのアイデアフラッシュをするとします。
単語ファイル(words)
CodeIQ
ゴルフ
簡単
難しい
Ruby
Java
アルゴリズム
メタプログラミング
技術用語
ことのはじめ
警告
RuboCop
楽しい
Brainf**k
コード
words = ARGV[0]
connect_count = ARGV[1]
output_count = ARGV[2]
class FileNotFoundException < StandardError; end
class BrainConnector
def initialize
validate_file
@words = File.read(ARGV[0]).each_line.map { |e|e.chomp }
@connect_count = Integer(ARGV[1])
@output_count = Integer(ARGV[2])
end
def connect_brain
@output_count.times { puts @words.shuffle.first(@connect_count).join(',') }
end
private
def validate_file
file = ARGV[0]
fail FileNotFoundException, "not found #{file}" unless File.exist?(file)
end
end
begin
bc = BrainConnector.new
bc.connect_brain
exit
rescue => e
puts e.message
exit(false)
end
出力1回目
4単語の組み合わせを10回出力
$ ruby brain_connect.rb words 4 10
警告,CodeIQ,楽しい,Ruby
ことのはじめ,警告,Java,技術用語
ことのはじめ,RuboCop,ゴルフ,Ruby
Java,簡単,ことのはじめ,ゴルフ
メタプログラミング,CodeIQ,難しい,警告
RuboCop,楽しい,Brainf**k,ことのはじめ
技術用語,ゴルフ,ことのはじめ,Ruby
ことのはじめ,CodeIQ,アルゴリズム,警告
メタプログラミング,RuboCop,技術用語,簡単
ことのはじめ,難しい,アルゴリズム,Java
出力2回目
3単語の組み合わせを4回出力
$ ruby brain_connect.rb words 3 4
簡単,ゴルフ,Brainf**k
アルゴリズム,ことのはじめ,RuboCop
難しい,メタプログラミング,警告
CodeIQ,ゴルフ,警告