From 044fff2e8b0ce15a19e568ff32dff3aafcceeba3 Mon Sep 17 00:00:00 2001 From: Zheng Cao Date: Mon, 5 Feb 2018 15:35:39 -0800 Subject: [PATCH 1/5] Finish basic version of the program --- random_menu.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 random_menu.rb diff --git a/random_menu.rb b/random_menu.rb new file mode 100644 index 0000000..960cedd --- /dev/null +++ b/random_menu.rb @@ -0,0 +1,18 @@ +method_array = ["deep fried", "roasted", "sauted", "slow cooked", "smoked", "steamed", "teriyaki", "boiled", "microwaved", "baked"] +taste_array = ["sweet", "sour", "salty", "hot", "creamy", "bitter", "umami", "buttery", "juicy", "yummy"] +food_array = ["chicken", "beef", "cheeze", "apple", "salad", "broccoli", "fish", "burrito", "steak", "tofu"] +message_array = [] + +def random_number + r = Random.new + index = r.rand(0...10) +end + +10.times { |i| + index_method = random_number + index_taste = random_number + index_food = random_number + message_array[i] = "#{ i + 1 }. " + method_array[index_method] + " " + taste_array[index_taste] + " " + food_array[index_food] +} + +puts message_array From 82838d4a1a23e4af06a6ad813f43dc2ca900c65a Mon Sep 17 00:00:00 2001 From: Zheng Cao Date: Mon, 5 Feb 2018 15:50:16 -0800 Subject: [PATCH 2/5] Finish first enhancement --- random_menu.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/random_menu.rb b/random_menu.rb index 960cedd..22e3027 100644 --- a/random_menu.rb +++ b/random_menu.rb @@ -3,16 +3,23 @@ food_array = ["chicken", "beef", "cheeze", "apple", "salad", "broccoli", "fish", "burrito", "steak", "tofu"] message_array = [] -def random_number +def random_number(max) r = Random.new - index = r.rand(0...10) + index = r.rand(0...max) +end + +def delete_current_item(array, index) + array.delete_at(index) end 10.times { |i| - index_method = random_number - index_taste = random_number - index_food = random_number + index_method = random_number(10 - i) + index_taste = random_number(10 - i) + index_food = random_number (10 - i) message_array[i] = "#{ i + 1 }. " + method_array[index_method] + " " + taste_array[index_taste] + " " + food_array[index_food] + delete_current_item(method_array, index_method) + delete_current_item(taste_array, index_taste) + delete_current_item(food_array, index_food) } puts message_array From 484251f550fe9422136d452412c393e29ca99863 Mon Sep 17 00:00:00 2001 From: Zheng Cao Date: Mon, 5 Feb 2018 16:12:59 -0800 Subject: [PATCH 3/5] Finish second enhancement --- random_menu.rb | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/random_menu.rb b/random_menu.rb index 22e3027..deb97ed 100644 --- a/random_menu.rb +++ b/random_menu.rb @@ -2,6 +2,14 @@ taste_array = ["sweet", "sour", "salty", "hot", "creamy", "bitter", "umami", "buttery", "juicy", "yummy"] food_array = ["chicken", "beef", "cheeze", "apple", "salad", "broccoli", "fish", "burrito", "steak", "tofu"] message_array = [] +number_of_item = 11 + +puts "How many items do you want to check out? Pick a number between 0 and 10." +number_of_item = gets.chomp.to_i +while number_of_item > food_array.size + puts "Please enter again." + number_of_item = gets.chomp.to_i +end def random_number(max) r = Random.new @@ -12,14 +20,15 @@ def delete_current_item(array, index) array.delete_at(index) end -10.times { |i| - index_method = random_number(10 - i) - index_taste = random_number(10 - i) - index_food = random_number (10 - i) +number_of_item.times { |i| + index_method = random_number(number_of_item - i) + index_taste = random_number(number_of_item - i) + index_food = random_number (number_of_item - i) message_array[i] = "#{ i + 1 }. " + method_array[index_method] + " " + taste_array[index_taste] + " " + food_array[index_food] delete_current_item(method_array, index_method) delete_current_item(taste_array, index_taste) delete_current_item(food_array, index_food) } +puts "Here is your list:" puts message_array From b420a4c84ad52d5d07c7785ff793461d35b9f658 Mon Sep 17 00:00:00 2001 From: Zheng Cao Date: Mon, 5 Feb 2018 16:48:01 -0800 Subject: [PATCH 4/5] Finish third enhancement --- random_menu.rb | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/random_menu.rb b/random_menu.rb index deb97ed..fe42ae2 100644 --- a/random_menu.rb +++ b/random_menu.rb @@ -1,13 +1,34 @@ -method_array = ["deep fried", "roasted", "sauted", "slow cooked", "smoked", "steamed", "teriyaki", "boiled", "microwaved", "baked"] -taste_array = ["sweet", "sour", "salty", "hot", "creamy", "bitter", "umami", "buttery", "juicy", "yummy"] -food_array = ["chicken", "beef", "cheeze", "apple", "salad", "broccoli", "fish", "burrito", "steak", "tofu"] +method_array = [] +taste_array = [] +food_array = [] message_array = [] number_of_item = 11 -puts "How many items do you want to check out? Pick a number between 0 and 10." +def create_arrays(array) + item = gets.chomp.downcase + until item == "quit" + array << item + puts "Please enter another item:" + item = gets.chomp.downcase + end +end + + +puts "Welcome to Random Menu! Let's create your own food database now." +puts "Please enter some cooking methods. Enter 'quit' when you are done." +create_arrays(method_array) +puts "Please enter some descriptors for food. Enter 'quit' when you are done." +create_arrays(taste_array) +puts "Please enter some of your favorite food. Enter 'quit' when you are done." +create_arrays(food_array) + +array_sizes = [method_array.size, taste_array.size, food_array.size] +max_number_of_item = array_sizes.min + +puts "How many items do you want to check out? Pick a number between 0 and #{max_number_of_item}." number_of_item = gets.chomp.to_i -while number_of_item > food_array.size - puts "Please enter again." +while number_of_item > max_number_of_item + puts "Please enter a number between 0 and #{max_number_of_item}." number_of_item = gets.chomp.to_i end From 9d2aa8d9015e519068837cd1ec6228ad762653f8 Mon Sep 17 00:00:00 2001 From: Zheng Cao Date: Mon, 5 Feb 2018 16:54:05 -0800 Subject: [PATCH 5/5] Add comments --- random_menu.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/random_menu.rb b/random_menu.rb index fe42ae2..88c77d7 100644 --- a/random_menu.rb +++ b/random_menu.rb @@ -1,9 +1,11 @@ +# Create variables for data storage method_array = [] taste_array = [] food_array = [] message_array = [] -number_of_item = 11 +number_of_item = 0 +# Helper method to create arrays based on user's inputs def create_arrays(array) item = gets.chomp.downcase until item == "quit" @@ -13,7 +15,7 @@ def create_arrays(array) end end - +# Instruction for data inputs puts "Welcome to Random Menu! Let's create your own food database now." puts "Please enter some cooking methods. Enter 'quit' when you are done." create_arrays(method_array) @@ -22,9 +24,11 @@ def create_arrays(array) puts "Please enter some of your favorite food. Enter 'quit' when you are done." create_arrays(food_array) +# Pick the max number of items that user can choose array_sizes = [method_array.size, taste_array.size, food_array.size] max_number_of_item = array_sizes.min +# Ask for number of items from user puts "How many items do you want to check out? Pick a number between 0 and #{max_number_of_item}." number_of_item = gets.chomp.to_i while number_of_item > max_number_of_item @@ -32,15 +36,18 @@ def create_arrays(array) number_of_item = gets.chomp.to_i end +# Random number generator def random_number(max) r = Random.new index = r.rand(0...max) end +# Delete chosen item from arrays def delete_current_item(array, index) array.delete_at(index) end +# Create output message number_of_item.times { |i| index_method = random_number(number_of_item - i) index_taste = random_number(number_of_item - i) @@ -51,5 +58,6 @@ def delete_current_item(array, index) delete_current_item(food_array, index_food) } +# Display output message puts "Here is your list:" puts message_array