LADDER5.RB DEMO Two breadth first searches: "cat" to "cab" and "cat" to "cam" Two depth first searches: "cat" to "bad" and "cat" to "bag" BREADTH FIRST, "cat" to "cab" rdlatimer@ltsp1 ~/AIRuby $ ruby ladder5.rb Type of search? depth first(1) breadth first (2): 2 What word to start with? cat What word is the goal? cab In Expand, expanded list: [["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] Searcher, recur call using lis=[["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] In Expand, expanded list: [["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"]] Searcher, recur call using lis=[["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"], ["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"]] Path: ["cab", "cat"] BREADTH FIRST, "cat" to "cam" rdlatimer@ltsp1 ~/AIRuby $ ruby ladder5.rb Type of search? depth first(1) breadth first (2): 2 What word to start with? cat What word is the goal? cam In Expand, expanded list: [["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] Searcher, recur call using lis=[["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] In Expand, expanded list: [["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"]] Searcher, recur call using lis=[["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"], ["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"]] In Expand, expanded list: [["cam", "cab", "cat"], ["can", "cab", "cat"], ["cap", "cab", "cat"], ["car", "cab", "cat"], ["caw", "cab", "cat"], ["cub", "cab", "cat"], ["gab", "cab", "cat"], ["jab", "cab", "cat"], ["lab", "cab", "cat"], ["nab", "cab", "cat"], ["tab", "cab", "cat"]] Searcher, recur call using lis=[["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"], ["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"], ["cam", "cab", "cat"], ["can", "cab", "cat"], ["cap", "cab", "cat"], ["car", "cab", "cat"], ["caw", "cab", "cat"], ["cub", "cab", "cat"], ["gab", "cab", "cat"], ["jab", "cab", "cat"], ["lab", "cab", "cat"], ["nab", "cab", "cat"], ["tab", "cab", "cat"]] Path: ["cam", "cat"] DEPTH FIRST, "cat" to "bad" rdlatimer@ltsp1 ~/AIRuby $ ruby ladder5.rb Type of search? depth first(1) breadth first (2): 1 What word to start with? cat What word is the goal? bad In Expand, expanded list: [["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] Searcher, recur call using lis=[["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] In Expand, expanded list: [["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"]] Searcher, recur call using lis=[["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] Path: ["bad", "bat", "cat"] DEPTH FIRST, "cat" to "bag" rdlatimer@ltsp1 ~/AIRuby $ ruby ladder5.rb Type of search? depth first(1) breadth first (2): 1 What word to start with? cat What word is the goal? bag In Expand, expanded list: [["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] Searcher, recur call using lis=[["bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] In Expand, expanded list: [["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"]] Searcher, recur call using lis=[["bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] In Expand, expanded list: [["bag", "bad", "bat", "cat"], ["bah", "bad", "bat", "cat"], ["ban", "bad", "bat", "cat"], ["bar", "bad", "bat", "cat"], ["bay", "bad", "bat", "cat"], ["bed", "bad", "bat", "cat"], ["bid", "bad", "bat", "cat"], ["bud", "bad", "bat", "cat"], ["dad", "bad", "bat", "cat"], ["gad", "bad", "bat", "cat"], ["had", "bad", "bat", "cat"], ["lad", "bad", "bat", "cat"], ["mad", "bad", "bat", "cat"], ["pad", "bad", "bat", "cat"], ["sad", "bad", "bat", "cat"]] Searcher, recur call using lis=[["bag", "bad", "bat", "cat"], ["bah", "bad", "bat", "cat"], ["ban", "bad", "bat", "cat"], ["bar", "bad", "bat", "cat"], ["bay", "bad", "bat", "cat"], ["bed", "bad", "bat", "cat"], ["bid", "bad", "bat", "cat"], ["bud", "bad", "bat", "cat"], ["dad", "bad", "bat", "cat"], ["gad", "bad", "bat", "cat"], ["had", "bad", "bat", "cat"], ["lad", "bad", "bat", "cat"], ["mad", "bad", "bat", "cat"], ["pad", "bad", "bat", "cat"], ["sad", "bad", "bat", "cat"], ["bag", "bat", "cat"], ["bah", "bat", "cat"], ["ban", "bat", "cat"], ["bar", "bat", "cat"], ["bay", "bat", "cat"], ["bet", "bat", "cat"], ["bit", "bat", "cat"], ["but", "bat", "cat"], ["eat", "bat", "cat"], ["fat", "bat", "cat"], ["hat", "bat", "cat"], ["mat", "bat", "cat"], ["oat", "bat", "cat"], ["pat", "bat", "cat"], ["rat", "bat", "cat"], ["sat", "bat", "cat"], ["vat", "bat", "cat"], ["cab", "cat"], ["cam", "cat"], ["can", "cat"], ["cap", "cat"], ["car", "cat"], ["caw", "cat"], ["cot", "cat"], ["cut", "cat"], ["eat", "cat"], ["fat", "cat"], ["hat", "cat"], ["mat", "cat"], ["oat", "cat"], ["pat", "cat"], ["rat", "cat"], ["sat", "cat"], ["vat", "cat"]] Path: ["bag", "bad", "bat", "cat"]