#Torbert $words=File.read("dictionary.txt").chomp.split def count_diff a,b return -1 if a.length != b.length count=0 for k in 0...a.length do count += 1 if a[k] != b[k] end return count end def gen_neighbors a arr=Array.new for w in $words do candidates << w if count_diff(a,w) == 1 end return arr end def dfs ladder, target, depth return false end puts current,target=File.read("puzzle.txt").chomp.split ladder = Array.new ladder << current ladder = dfs(ladder, target, 5) puts "Ladder:" for k in 0...ladder.length do puts "#{k+1}. #{ladder[k]}" end puts if ladder.include?(target) puts "Success!!" else puts "Failure." end puts