Tehtävä:
Luvun neljännessä tehtävässä harjoitellaan case-valinnan käyttöä, sekä luodaan arkielämää helpottava, erehtymätön, Oraakkeli-ohjelma. Ohjelma käynnistyy antamalla lyhyen selityksen itsestään: "Oraakkeli vastaa kyllä/ei-muodossa". Tämän jälkeen pyydetään käyttäjältä kysymys "Kirjoita kysymyksesi Oraakkelille:". Tämän jälkeen ohjelma arpoo luvun väliltä 0-99 ja vastaa käyttäjälle seuraavassa muodossa:
"Kysymyksesi oli: [esitetty kysymys]", "Tähän Oraakkeli vastasi:" ja mikäli satunnaisluku oli 0-19, "Ei missään nimessä!", 20-44 "Ei varmaankaan", 45-54 "En osaa sanoa.", 55-79 "Luultavasti kyllä." ja 80-99 "Ehdottomasti kyllä".
Toimiessaan oikein ohjelma tulostaa seuraavaa:
Example output:
Oraakkeli vastaa kyllä/ei-muodossa
Kirjoita kysymyksesi Oraakkelille:
Onko nyt hyvä päivä?
Kysymyksesi oli: Onko nyt hyvä päivä?
Tähän Oraakkeli vastasi:
En osaa sanoa.
Vastaus
#!/usr/bin/env ruby
# coding: utf-8
puts "Oraakkeli vastaa kyllä/ei-muodossa\n\
Kirjoita kysymyksesi Oraakkelille:"
begin
kysymys = String(gets.chomp)
if not kysymys[-1] == "?"
puts "Ei ole kysymys"
throw ArgumentError
end
rescue ArgumentError
warn "Syötteesi ei ole kelvollinen"
retry
end
puts "Kysymyksesi oli: #{kysymys}"
x = rand(0..99)
case x
when 0..19
vastaus = "Ei missään nimessä!"
when 20..44
vastaus = "Ei varmaankaan"
when 45..54
vastaus = "En osaa sanoa."
when 55..79
vastaus = "Luultavasti kyllä."
when 80..99
vastaus = "Ehdottomasti kyllä."
# else-vaihtoehto ei koskaan toteutuisi, mikäli x on aina väliltä 0-99,
# ja edellämainitut tilanteet kattavat koko kyseisen arvovälin
end
print "Tähän Oraakkeli vastasi:\n#{vastaus}"