你将编写一个Java程序来玩Pico,Fermi,Bagel的游戏。 这里是游戏规则:类,方法和随机数生成
电脑会随机产生一个“秘密”的三位数字。 第一个数字不会是0,所有的数字都会不同。 用户尝试猜测数字。如果用户猜测正确,则游戏结束。
如果没有,电脑会给出提示,玩家再试一次。该 提示:
为每个保密号码,电脑打印“费米”
匹配的适当地方每个匹配位数的数字,但不能在适当的位置,计算机打印“微微”
如果没有数字匹配,计算机打印“百吉饼”
程序将有一个主要课程和一个百吉饼课程。百吉饼 类将调用其他3种方法
生成秘密数
确定当前的猜想是否是一个胜利者
- 评估目前的猜测和打印提示
我的问题 - 当我运行程序时,它要求我输入一个3位数的代码,但是它只是要求我输入一个3位数的代码,而不是将用户的猜测数字与随机生成的数字进行比较。我假设我对这些类或方法做了一些愚蠢的事情,因为我们不久前才了解到它们,并且仍然让我困惑。
程序的第一部分是我的主类,第二部分是百吉饼类。
package assignment.iii;
import javax.swing.JOptionPane;
import java.util.Scanner;
public class AssignmentIII {
public static void main(String[] args)
{
int playagain = JOptionPane.showConfirmDialog(null, "Would you like to play?", "Message", JOptionPane.YES_NO_OPTION);
while (playagain == JOptionPane.YES_OPTION) {
Bagels myBagels = new Bagels();
myBagels.playGame() ;
myBagels.randNumber = 0;
playagain = JOptionPane.showConfirmDialog(null, "Would you like to play again?", "Message", JOptionPane.YES_NO_OPTION);
}
}
}
// start of Bagels class
package assignment.iii;
import java.util.Random;
import javax.swing.JOptionPane;
public class Bagels{
public int randNumber;
private int Guess;
private int Rand1, Rand2, Rand3;
private int Guess1, Guess2, Guess3;
private int guessCount;
public void playGame()
{
do {
Guess = Integer.parseInt(JOptionPane.showInputDialog("Enter a three digit number"));
}
while (Guess != randNumber);
}
private int generateSecretNumber()
{
Random randN = new Random();
return randN.nextInt(999)+1;
}
private void printHint(String guess)
{
if(randNumber == Guess)
System.out.println("Correct");
else
{
Guess1 = (Guess)/100;
Guess2 = (Guess%100)/10;
Guess3 = (Guess%100)%10;
}
if(Guess1 == Rand1)
{
System.out.println("Fermi");
}
if(Guess2 == Rand2)
{
System.out.println("Fermi");
}
if(Guess3 == Rand3)
{
System.out.println("Fermi");
}
if(Guess2 == Rand1)
{
System.out.println("Pico");
}
if(Guess3 == Rand1)
{
System.out.println("Pico");
}
if(Guess1 == Rand2)
{
System.out.println("Pico");
}
if(Guess3 == Rand2)
{
System.out.println("Pico");
}
if(Guess1 == Rand3)
{
System.out.println("Pico");
}
if(Guess2 == Rand3)
{
System.out.println("Pico");
}
else if(Guess1 != Rand1 && Guess1 != Rand2 && Guess1 != Rand3 &&
Guess2 != Rand1 && Guess2 != Rand2 && Guess2 != Rand3 &&
Guess3 != Rand1 && Guess3 != Rand2 && Guess3 != Rand3)
{
System.out.println("Bagels");
}
guessCount++;
}
}
还不确定为什么只是反复要求输入3位数字?我认为它在我的百吉饼类中与这有关,我的generateSecretNumber和printHint方法表示它们未被使用?但我不知道如何使它们在程序中使用? – Alex 2014-10-20 02:28:59