## 5 Numeronarvauspeli **Tehtävä:** Luvun viimeinen tehtävä on kertaustehtävä, jossa rakennetaan numeronarvauspeli. Tee ohjelma, joka arpoo luvun väliltä 0-99 ja pyytää käyttäjää arvaamaan annettu luku. Mikäli käyttäjä arvaa yläkanttiin, tulostetaan "Haettu luku on pienempi", jos alakanttiin niin "Haettu luku on suurempi". Jos pelaaja arvaa oikein, tulostetaan "Arvasit oikein!" ja kysytään "Pelataanko uudestaan? (k/e): ". Alussa ohjelma antaa yleiset ohjeet muodossa "Arvaa luku väliltä 0-99". Toteuta ohjelmasi siten, että käyttäjän antamat virhesyötteet kuten kirjaimet tai erikoismerkit eivät aiheuta ohjelman kaatumista. Toimiessaan oikein ohjelma tulostaa seuraavaa: Example output: ``` Arvaa luku väliltä 0-99. Arvaus: 10 Haettu luku on suurempi. Arvaus: 30 Haettu luku on pienempi. Arvaus: 20 Arvasit oikein! Pelataanko uudestaan? (k/e): e ``` **Vastaus** ``` #!/usr/bin/env ruby # coding: utf-8 $_lukuVali = [0, 99] def arvaaLuku arvottuLuku = rand($_lukuVali[0]...$_lukuVali[1]) puts "Arvaa luku väliltä #{$_lukuVali[0]}-#{$_lukuVali[1]}." while true print "Arvaus: " begin arvaus = Integer(gets.chomp) rescue ArgumentError warn "Anna kokonaisluku" retry end case when arvaus < arvottuLuku puts "Haettu luku on suurempi." when arvaus > arvottuLuku puts "Haettu luku on pienempi." else puts "Arvasit oikein!" begin print "Pelataanko uudestaan? (k/e): " vastaus = String(gets.strip.chomp) case vastaus when "k" arvottuLuku = rand($_lukuVali[0]...$_lukuVali[1]) next when "e" Process.exit(0) else throw ArgumentError end rescue ArgumentError warn "Anna joko 'k' (kyllä) tai 'e' (ei)" retry end end end end arvaaLuku ```