要求用户只重试他的三个答案中的一个? (Java)的

时间:2014-01-03 17:31:59

标签: java random count

我在Java中创建了一个小程序,用户被要求选择3张卡,范围从4到6.这是一个草率的代码,但它的工作原理。生成三个随机数(4到6)。如果用户以正确的顺序猜出这些数字,他就赢了。现在,如果用户第一次没有获得正确的牌,则应该有一个选项可以改变他的一个猜测。这应该由用户通过插入1,2或3来重试。不应生成新的随机数。我在学校还没有学到这一点,并尝试在网上搜索。谁能给我一些洞察力呢?

package cardgame;

import java.util.Scanner;

public class CardGame {

public static void main(String[] args){

    Scanner scan = new Scanner(System.in);
    int[] guess = new int[3];
    int[] card = new int[3];

    System.out.println("Pick three cards with numbers ranging from 4 to 6!\n");

        for (int i=0; i<3; i++){
        System.out.print("Card number " + (i+1) + " (4, 5 or 6): ");
        guess[i] = scan.nextInt();
        }
        System.out.println(" ");
        System.out.println("Your hand of cards: " + "[" + guess[0] + "]" + "[" + guess[1] + "]" + "[" + guess[2] + "]");

       for (int i=0; i<3; i++){
           card[i] = (int) (Math.random() * 3 + 2 +2);
       }
       System.out.println("My hand of cards: " + "[" + card[0] + "]" + "[" + card[1] + "]" + "[" + card[2] + "]\n");


       int count = 0;
       for (int i=0; i<3; i++){
       if (card[i] == guess[i])
            count++;
          }

        if (count == 3){
        System.out.println("Congratulations, you have won!");
        } else{
        System.out.println("I'm sorry, you lost!");
        }
   }
}

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样:

System.out.println("Would you like to change one of your guesses? yes/no");
if(scan.next() == "yes") 
{
    System.out.println("What guess would you like to change? 1/2/3");
    if(scan.nextInt() == 1 || scan.nextInt() == 2 || scan.nextInt() == 3) 
    {
        int temp = scan.nextInt();
        System.out.println("What is your new guess?");
        guess[temp-1] == scan.nextInt(); // -1 because array index starts at 0
    }
    else
        System.out.println("That's not a valid guess number");
} 

这是一个非常基本的例子。您可以根据需要使其变得复杂。例如,通过添加循环提示用户再次询问他们的猜测是否无效。