forked from smileyface525/phase_0_unit_2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbakery_challenge.rb
63 lines (53 loc) · 2.1 KB
/
bakery_challenge.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# U2.W5: The Bakery Challenge (GPS 2.1)
# Your Names
# 1)
# 2)
# This is the file you should end up editing.
def bakery_num(num_of_people, fav_food)
my_list = {"pie" => 8, "cake" => 6, "cookie" => 1}
pie_qty = 0
cake_qty = 0
cookie_qty = 0
has_fave = false
my_list.each_key do |k|
if k == fav_food
has_fave = true
fav_food = k
end
end
if has_fave == false
raise ArgumentError.new("You can't make that food")
else
fav_food_qty = my_list.values_at(fav_food)[0]
if num_of_people % fav_food_qty == 0
num_of_food = num_of_people / fav_food_qty
return "You need to make #{num_of_food} #{fav_food}(s)."
else num_of_people % fav_food_qty != 0
while num_of_people > 0
if num_of_people / my_list["pie"] > 0
pie_qty = num_of_people / my_list["pie"]
num_of_people = num_of_people % my_list["pie"]
elsif num_of_people / my_list["cake"] > 0
cake_qty = num_of_people / my_list["cake"]
num_of_people = num_of_people % my_list["cake"]
else
cookie_qty = num_of_people
num_of_people = 0
end
end
return "You need to make #{pie_qty} pie(s), #{cake_qty} cake(s), and #{cookie_qty} cookie(s)."
end
end
end
#-----------------------------------------------------------------------------------------------------
#DRIVER CODE-- DO NOT MODIFY ANYTHING BELOW THIS LINE (except in the section at the bottom)
# These are the tests to ensure it's working.
# These should all print true if the method is working properly.
p bakery_num(24, "cake") == "You need to make 4 cake(s)."
p bakery_num(41, "pie") == "You need to make 5 pie(s), 0 cake(s), and 1 cookie(s)."
p bakery_num(24, "cookie") == "You need to make 24 cookie(s)."
p bakery_num(4, "pie") == "You need to make 0 pie(s), 0 cake(s), and 4 cookie(s)."
p bakery_num(130, "pie") == "You need to make 16 pie(s), 0 cake(s), and 2 cookie(s)."
# p bakery_num(3, "apples") # this will raise an ArgumentError
# You SHOULD change this driver code. Why? Because it doesn't make sense.
p bakery_num(41, "cake") == "You need to make 5 pie(s), 0 cake(s), and 1 cookie(s)." # WHAAAAAT? I thought I said I wanted cake!