mirror of https://github.com/E-Almqvist/hsf
parent
d32049181d
commit
86a6e4ecd8
@ -0,0 +1,2 @@ |
|||||||
|
#!/usr/bin/ruby -w |
||||||
|
|
@ -0,0 +1,96 @@ |
|||||||
|
class Coffee |
||||||
|
|
||||||
|
attr_accessor(:location, :change, :coffees, :price, :served) |
||||||
|
|
||||||
|
def initialize(location, change, coffees, price) |
||||||
|
|
||||||
|
@location = location |
||||||
|
@change = change |
||||||
|
@coffees = coffees |
||||||
|
@price = price |
||||||
|
@served = 0 |
||||||
|
|
||||||
|
end |
||||||
|
|
||||||
|
def prompt() |
||||||
|
if @coffees > 0 |
||||||
|
puts "betala #{@price} kr" |
||||||
|
inserted_money = await_payment() |
||||||
|
successful_payment = verify_payment(inserted_money) |
||||||
|
|
||||||
|
if successful_payment == true |
||||||
|
|
||||||
|
give_coffee() |
||||||
|
|
||||||
|
end |
||||||
|
else |
||||||
|
puts "Inget mera kaffe finns! :(" |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
def give_coffee |
||||||
|
|
||||||
|
@coffees -= 1 |
||||||
|
|
||||||
|
puts "här är ditt kaffe" |
||||||
|
|
||||||
|
end |
||||||
|
|
||||||
|
def await_payment() |
||||||
|
print("Inset money: ") |
||||||
|
inp = gets.chomp |
||||||
|
|
||||||
|
coins = inp.gsub(" ", "").split(",") |
||||||
|
coin_hash = Hash.new(0) |
||||||
|
|
||||||
|
coins.each_with_index do |v, k| |
||||||
|
coin_arr = v.split(":") |
||||||
|
coin_type = coin_arr[0].to_i |
||||||
|
coin_amount = coin_arr[1].to_i |
||||||
|
|
||||||
|
coin_hash[coin_type] = coin_amount |
||||||
|
end |
||||||
|
|
||||||
|
return coin_hash |
||||||
|
end |
||||||
|
|
||||||
|
def verify_payment(coins) |
||||||
|
|
||||||
|
summed_price = 0 |
||||||
|
|
||||||
|
coins.each do |coin_array| |
||||||
|
summed_price += coin_array[0] * coin_array[1] |
||||||
|
end |
||||||
|
|
||||||
|
d_price = summed_price - @price |
||||||
|
|
||||||
|
if d_price < 0 |
||||||
|
puts "du har betalat för lite" |
||||||
|
return false |
||||||
|
elsif d_price > 0 |
||||||
|
|
||||||
|
puts "Du har betalat för mycket!" |
||||||
|
puts "Här är din change." |
||||||
|
|
||||||
|
@change.each_key do |type| |
||||||
|
amount = (d_price / type).to_i |
||||||
|
if type * amount == d_price |
||||||
|
@change[type] -= amount |
||||||
|
puts "här är #{amount}st #{type}kr" |
||||||
|
break |
||||||
|
else |
||||||
|
puts "unable to give change" |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
return true |
||||||
|
elsif d_price == 0 |
||||||
|
return true |
||||||
|
end |
||||||
|
|
||||||
|
end |
||||||
|
|
||||||
|
end |
||||||
|
|
||||||
|
x = Coffee.new("Något ställe", {5=>10, 2=>2}, 1, 10) |
||||||
|
x.prompt() |
Loading…
Reference in new issue