Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Currently, the game allows players to make an unlimited number of guesses. Therefore, players cannot lose the game. Modify it so that players are allowed

Currently, the game allows players to make an unlimited number of guesses. Therefore, players cannot lose the game. Modify it so that players are allowed a maximum of 10 guesses, after which the game is declared lost. To implement this change, modify the Game classs play_game method by adding programming logic that terminates the methods execution if the player does not guess the number within 10 guesses. In addition, modify the display_instructions method so that it informs players of the maximum number of guesses.

_________________________________________________________

# Define custom classes --------------------------------------------------- #Define a class representing the console window class Screen def cls #Define a method that clears the display area puts (" " * 25) #Scroll the screen 25 times puts "\a" #Make a little noise to get the player's attention end def pause #Define a method that pauses the display area STDIN.gets #Execute the STDIN class's gets method to pause script #execution until the player presses the enter key end end #Define a class representing the Ruby Number Guessing Game class Game #This method displays the game's opening screen def display_greeting Console_Screen.cls #Clear the display area #Display welcome message print "\t\t Welcome to the Ruby Number Guessing Game!" + " Press Enter to " + "continue." Console_Screen.pause #Pause the game end #Define a method to be used to present game instructions def display_instructions Console_Screen.cls #Clear the display area puts "INSTRUCTIONS: " #Display a heading #Display the game's instructions puts "This game randomly generates a number from 1 to 1000 and" puts "challenges you to identify it in as few guesses as possible." puts "After each guess, the game will analyze your input and provide" puts "you with feedback. You may take as many turns as you need in" puts "order to guess the game's secret number. " puts "Good luck! " print "Press Enter to continue." Console_Screen.pause #Pause the game end #Define a method that generates the game's secret number def generate_number #Generate and return a random number between 1 and 1000 return randomNo = 1 + rand(1000) end #Define a method to be used control game play def play_game #Call on the generate_number method in order to get a random number number = generate_number #Loop until the player inputs a valid answer loop do Console_Screen.cls #Clear the display area #Prompt the player to make a guess print " Enter your guess and press the Enter key: " reply = STDIN.gets #Collect the player's answer reply.chop! #Remove the end of line character reply = reply.to_i #Convert the player's guess to an integer #Validate the player's input only allowing guesses between 1 and 1000 if reply < 1 or reply > 1000 then redo #Redo the current iteration of the loop end #Analyze the player's guess to determine if it is correct if reply == number then #The player's guess was correct Console_Screen.cls #Clear the display area print "You have guessed the number! Press enter to continue." Console_Screen.pause #Pause the game break #Exit loop elsif reply < number then #The player's guess was too low Console_Screen.cls #Clear the display area print "Your guess is too low! Press Enter to continue." Console_Screen.pause #Pause the game elsif reply > number then #The player's guess was too high Console_Screen.cls #Clear the display area print "Your guess is too high! Press Enter to continue." Console_Screen.pause #Pause the game end end end #This method displays the information about the Ruby Number Guessing Game def display_credits Console_Screen.cls #Clear the display area #Thank the player and display game information puts "\t\tThank you playing the Ruby Number Guessing Game. " puts " \t\t\t Developed by Jerry Lee Ford, Jr. " puts "\t\t\t\t Copyright 2010 " puts "\t\t\tURL: http://www.tech-publishing.com " end end # Main Script Logic ------------------------------------------------------- Console_Screen = Screen.new #Instantiate a new Screen object SQ = Game.new #Instantiate a new Game object #Execute the Game class's display_greeting method SQ.display_greeting answer = "" #Loop until the player enters y or n and do not accept any other input loop do Console_Screen.cls #Clear the display area #Prompt the player for permission to start the game print "Are you ready to play the Ruby Number Guessing Game? (y/n): " answer = STDIN.gets #Collect the player's response answer.chop! #Remove any extra characters appended to the string #Terminate the loop if valid input was provided break if answer == "y" || answer == "n" #Exit loop end #Analyze the player's input if answer == "n" #See if the player elected not to take the game Console_Screen.cls #Clear the display area #Invite the player to return and play the game some other time puts "Okay, perhaps another time. " else #The player wants to play the game #Execute the Game class's display_instructions method SQ.display_instructions loop do #Execute the Game class's play_game method SQ.play_game Console_Screen.cls #Clear the display area #Prompt the player for permission start a new round of play print "Would you like to play again? (y/n): " playAgain = STDIN.gets #Collect the player's response playAgain.chop! #Remove any extra characters appended to the string break if playAgain == "n" #Exit loop end #Call upon the Game class's determine_credits method in order to thank #the player for playing the game and to display game information SQ.display_credits end

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

Why would a firm use competition-based pricing?

Answered: 1 week ago