mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-21 23:00:43 -08:00
@@ -1,3 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Ruby](https://www.ruby-lang.org/en/)
|
||||
Conversion to [Ruby](https://www.ruby-lang.org/en/) by [R.T. Lechow](https://github.com/rtlechow)
|
||||
|
||||
59
47_Hi-Lo/ruby/hi_lo.rb
Normal file
59
47_Hi-Lo/ruby/hi_lo.rb
Normal file
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env ruby
|
||||
MAX_TRIES = 6
|
||||
RANGE = (1..100)
|
||||
|
||||
def intro
|
||||
puts <<~END_OF_INTRO
|
||||
#{'HI LO'.center(74)}
|
||||
#{"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n\n\n".center(76)}
|
||||
THIS IS THE GAME OF HI LO.\n
|
||||
YOU WILL HAVE #{MAX_TRIES} TRIES TO GUESS THE AMOUNT OF MONEY IN THE
|
||||
HI LO JACKPOT, WHICH IS BETWEEN #{RANGE.min} AND #{RANGE.max} DOLLARS. IF YOU
|
||||
GUESS THE AMOUNT, YOU WIN ALL THE MONEY IN THE JACKPOT!
|
||||
THEN YOU GET ANOTHER CHANCE TO WIN MORE MONEY. HOWEVER,
|
||||
IF YOU DO NOT GUESS THE AMOUNT, THE GAME ENDS.\n\n
|
||||
END_OF_INTRO
|
||||
end
|
||||
|
||||
def make_guess
|
||||
puts 'YOUR GUESS?'
|
||||
@guess = gets.to_i
|
||||
end
|
||||
|
||||
def check_guess
|
||||
if @guess == @number
|
||||
@guessed_correctly = true
|
||||
@total_winnings += @number
|
||||
puts <<~END_OF_WIN_TEXT
|
||||
GOT IT!!!!!!!!!! YOU WIN #{@number} DOLLARS.
|
||||
YOUR TOTAL WINNINGS ARE NOW #{@total_winnings} DOLLARS.
|
||||
END_OF_WIN_TEXT
|
||||
else
|
||||
puts "YOUR GUESS IS TOO #{@guess > @number ? 'HIGH' : 'LOW'}.\n\n"
|
||||
end
|
||||
end
|
||||
|
||||
def blew_it
|
||||
@total_winnings = 0
|
||||
puts "YOU BLEW IT...TOO BAD...THE NUMBER WAS #{@number}"
|
||||
end
|
||||
|
||||
def outro
|
||||
puts "\nSO LONG. HOPE YOU ENJOYED YOURSELF!!!"
|
||||
end
|
||||
|
||||
intro
|
||||
@total_winnings = 0
|
||||
loop do
|
||||
@guessed_correctly = false
|
||||
@number = rand(RANGE)
|
||||
MAX_TRIES.times do
|
||||
make_guess
|
||||
check_guess
|
||||
break if @guessed_correctly
|
||||
end
|
||||
blew_it unless @guessed_correctly
|
||||
puts "\nPLAY AGAIN (YES OR NO)?"
|
||||
break if gets.start_with?(/n/i)
|
||||
end
|
||||
outro
|
||||
Reference in New Issue
Block a user