你將編寫一個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