📄 guessgame.java
字号:
/**
* @(#)GuessGame.java
*
* GuessGame application
*
* @author
* @version 1.00 2008/5/29
*/
import java.util.Random;
import java.util.Scanner;
public class GuessGame
{
public static int getRandomNumber(int low, int high){
Random generator = new Random();
return low + generator.nextInt(high - low + 1);
}
public static int getIntFromUser(String prompt){
Scanner sc = new Scanner(System .in);
while (true)
{
System .out.print(prompt);
if (! sc.hasNextInt())
System .out.println( "Invalid number.");
else
return sc.nextInt();
}
}
public static int getMenuOption(){
System .out.println( "Choose an option:");
System .out.println( "\t1=Play game");
System .out.println( "\t2=Change number range");
System .out.println( "\t3=Quit\n");
int choice = getIntFromUser( "Enter your choice:");
while (choice < 1 || choice > 3){
System .out.println( "Please choose a valid option.\n");
choice = getIntFromUser( "Enter your choice:");
}
return choice;
}
public static void getNumberRange(int[] range){
System .out.println( "\nTo play the game, we need a range of numbers from which to pick a secret number. ");
range[0] = getIntFromUser(" Enter the low end of the range: ");
range[1] = getIntFromUser( "Enter the high end of the range:");
while (range[1] <= range[0]){
System .out.println( "Must enter a higher number than " + range[0] +"!");
range[1] = getIntFromUser( "Enter the high end of the range:");
}
System .out.println();
}
public static int playGame(int[] range)
{
System .out.println( "\nThe game begins!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
int secretNumber = getRandomNumber(range[0], range[1]);
Scanner sc = new Scanner(System .in);
int guess = 0;
int numGuesses = 0;
while (guess != secretNumber){
guess = getIntFromUser( "\nPick a number from "
+ range[0] + " to " + range[1] + ":");
numGuesses++;
if (guess > secretNumber)
System .out.println( "Too high!");
else if (guess < secretNumber)
System .out.println( "Too low!");
}
System .out.println( "\nCorrect!");
System .out.println( "You took " + numGuesses + " guesses to get it right.\n ");
return numGuesses;
}
public static void printEndOfGame(int numGames, int totalGuesses){
if (numGames > 0){
System .out.println( "\nYou played " + numGames
+ " games, and took an average of "
+ totalGuesses / (double)numGames + " guesses per game.\n ");
System .out.println( "Thanks for playing!");
}
}
public static void main(String[] args){
System .out.println( "Welcome to the Guessing Game!\n");
boolean playing = true;
int numGames = 0;
int totalGuesses = 0;
int[] range = {1,100};
while (playing){
int choice = getMenuOption();
if (choice == 1){ //play game
int numGuesses = 0;
numGuesses = playGame(range);
totalGuesses += numGuesses;
numGames++;
}
else if (choice == 2) //change the range
getNumberRange(range);
else
playing = false; //end of the game
}
printEndOfGame( numGames, totalGuesses);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -