#!/usr/bin/env ruby words = [] File.open('/usr/share/dict/words'){|f|f.each{|l|words << l.chomp}} puts "How many letters is it?" len = gets.to_i words = words.find_all{|w| w.length == len} puts "Hmm. That matches #{words.length} words." puts "What is the first letter?" first_letter = gets.downcase[0] words = words.find_all{|w| w.downcase[0] == first_letter} puts "That narrows it down to #{words.length} words" puts "What is the last letter?" last_letter = gets.downcase[0] words = words.find_all{|w| w.downcase[-1] == last_letter} puts "That narrows it down to #{words.length} words" [ 10, words.length ].min.times do |i| puts "Is it #{words[i]}?" if gets =~ /^y/i puts "HA! I told you I was smart!" exit 0 end end puts "You beat me!"