Ruby fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.8 KiB

4 Oraakkeli

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}"