5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby | 単語の組み合わせでブレーンストーミングもどきをするためのRubyスクリプト

Posted at

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,ゴルフ,警告
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?