So I am not getting similar code to what Chris is when I do the examples he wants us to do, and many of the things he brings up after Chapter 6 seem to be lacking some explanation to create a full understanding so I can fully absorb the concept.
Everything in previous chapters, we would get similar looking stuff. It’s only now that we’ve gotten to branching and looping, and everything afterward that things completely fall apart for me.
Deaf Grandma
My code
puts ''
puts ''
gma = 'Grandma replies: HUH?! SPEAK UP, SONNY!'
year = ''
year_roll = rand(20)
gma_canhear = 'Grandma replies: NO, NOT SINCE ' + year + '!'
if year_roll == 0
year = '1930'
elsif year_roll == 1
year = '1931'
elsif year_roll == 2
year = '1932'
elsif year_roll == 3
year = '1933'
elsif year_roll == 4
year = '1934'
elsif year_roll == 5
year = '1935'
elsif year_roll == 6
year = '1936'
elsif year_roll == 7
year = '1937'
elsif year_roll == 8
year = '1938'
elsif year_roll == 9
year = '1939'
elsif year_roll == 10
year = '1940'
elsif year_roll == 11
year = '1941'
elsif year_roll == 12
year = '1942'
elsif year_roll == 13
year = '1943'
elsif year_roll == 14
year = '1944'
elsif year_roll == 15
year = '1945'
elsif year_roll == 16
year = '1946'
elsif year_roll == 17
year = '1947'
elsif year_roll == 18
year = '1948'
elsif year_roll == 19
year = '1949'
else year_roll == 20
year = '1950'
end
gma_canhear = 'Grandma replies: NO, NOT SINCE ' + year + '!'
#Update gma_canhear variable with year value after the year_roll if branch.
wistg = 'a'
# what I say to grandma = wistg | This is it's inital value before being updated. If I left it blank it
# would cause an error. I don't know why.
while wistg != wistg.upcase
puts 'You say to Grandma...'
wistg = gets.chomp
puts ''
if wistg == wistg.upcase
puts ''
puts gma_canhear
puts ''
elsif wistg == 'BYE'
break
else puts gma
puts ''
end
end
puts ''
puts ''
Chris’ code
puts 'HEY THERE, SONNY! GIVE GRANDMA A KISS!'
while true
said = gets.chomp
if said == "BYE"
puts 'BYE SWEETIE!'
break
end
if said != said.upcase
puts 'HUH?! SPEAK UP, SONNY!'
else
random_year = 1930 + rand(21)
puts 'NO, NOT SINCE ' + random_year.to_s + '!'
end
end
or
puts 'HEY THERE, SONNY! GIVE GRANDMA A KISS!'
while true
said = gets.chomp
break if said == "BYE"
response = if said != said.upcase
'HUH?! SPEAK UP, SONNY!'
else
"NO, NOT SINCE #{rand(1930..1950)}!"
end
puts response
end
puts 'BYE SWEETIE!'
His code is vastly more compact. I just don’t understand how he was able to do that. I barely understand what he did.
I did what I could, with what I learned form the book up to that point and never in my wildest dreams would I have come up with anything like what he did.
===