2014-03-27 92 views
1

我一直在尝试自己学习Java大约一周,而且我决定尝试将我的(相当有限的)知识应用于制作一个简单的猜谜游戏。学习Java - 制作一个简单的猜谜游戏

基本上,用户输入一个介于1到10之间的数字,并根据他们是否猜测得太高,太低或正确猜测随机数字而得到反馈。

我的问题是,一旦我运行我的方法,我不知道如何允许多个猜测。基本上他们猜测一次,然后就是这样。游戏结束。

我敢肯定它就像我需要实现的循环一样简单,如果他们猜错了,可能会声明一个额外的变量?我不知道。

任何人都可以帮我吗?

这里是我的代码:

import java.util.Scanner; 
import java.util.Random; 

public class GuessingGame { 
public static void main(String[] args) { 

    //creates a new scanner object 
    Scanner input = new Scanner(System.in); 

    // randomly generates a number from 1-10 
    Random rand = new Random(); 
    int myNumber = rand.nextInt(10)+1; 


    String tooWarm = "Too high. Try again!"; 
    String tooCold = "Too cold. Try again!"; 
    String bingo = "Yup! Good guess!"; 
    boolean playing = true; 

    System.out.printf("What's your name? "); 
    String name = input.nextLine();  
    System.out.println("Well, " + name + ", betcha can't guess what number I'm thinking of! \nHint: it's between 1 and 10..."); 
    int value = input.nextInt(); 


     if (value > myNumber) { 
      System.out.println(tooWarm); 
     } 

     else if (value < myNumber) { 
      System.out.println(tooCold); 
     } 

     else { 
      System.out.println(bingo); 
     }   

} 
} 
+1

你需要一个循环:'while(!input.equals(“stop”))' –

回答

1

只是这样做,

do..while让你执行,以ATLEAST执行一次。

do { 

     System.out.println("Enter : "); 
     int value = input.nextInt(); 

     if (value > myNumber) { 
      System.out.println(tooWarm); 
     } 

     else if (value < myNumber) { 
      System.out.println(tooCold); 
     } 

     else { 
      System.out.println(bingo); 
      playing = false; 
     } 
    } 
    while (playing); 
0

添加到您的代码的末尾:

... 
char yN = input.nextChar(); 
if (yN == 'y' || yN == 'Y') { 
    main(null); 
    return; 
    } 
}//end of main(). 

基本上它的作用是,它使得递归调用,使游戏可以一遍又一遍播放。 :-)

0
import java.util.Scanner; 
import java.util.Random; 

public class GuessingGame { 
    public static void main(String[] args) { 

    //creates a new scanner object 
    Scanner input = new Scanner(System.in); 

    // randomly generates a number from 1-10 
    Random rand = new Random(); 
    int myNumber = rand.nextInt(10)+1; 


    String tooWarm = "Too high. Try again!"; 
    String tooCold = "Too cold. Try again!"; 
    String bingo = "Yup! Good guess!"; 
    boolean playing = true; 

    System.out.printf("What's your name? "); 
    String name = input.nextLine();  
    System.out.println("Well, " + name + ", betcha can't guess what number I'm thinking of! \nHint: it's between 1 and 10..."); 
    while(true){ 
     int value = input.nextInt(); 


     if (value > myNumber) { 
      System.out.println(tooWarm); 
     } 

     else if (value < myNumber) { 
      System.out.println(tooCold); 
     } 

     else { 
      System.out.println(bingo); 
      return; 
     }   

    } 
}