classMain.java這個java代碼有什麼問題? (簡單隨機數產生程序)
public class classMain
{
public static classCall classCallObject;
public static void main(String[] args)
{
classCallObject = new classCall();
classCallObject.calling();
}
}
classCall.java
import java.awt.CardLayout;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class classCall extends JFrame
{
public JFrame frame;
public JPanel cards;
public CardLayout cardlayout = new CardLayout();
public static classEngine engObject = new classEngine();
public void calling()
{
frame = new JFrame();
frame.setVisible(true);
frame.setLayout(new FlowLayout());
frame.setTitle("Cricket Game 2012");
frame.setSize(1024, 740);
frame.setResizable(false);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
gui guiObject = new gui();
frame.add(guiObject.totalScore);
}
}
gui.java
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class gui extends JFrame
{
public JLabel totalScore;
public gui()
{
classCall.engObject.gameEngine();
totalScore = new JLabel(String.format("Total is %d - %d", classCall.engObject.getTotal(), classCall.engObject.getWickets()));
totalScore.setLayout(new FlowLayout());
}
}
classEngine.java
import java.util.Random;
public class classEngine
{
public int[][] Overs = new int[20][6];
public static int total=0;
public static int wickets=0;
public void gameEngine()
{
for (int over=1; over<Overs.length;over++)
{
for (int ball=1; ball<Overs[over].length; ball++)
{
Overs[over][ball] = batsmanNormalNormal();
total=total + Overs[over][ball];
}
}
}
public int batsmanNormalNormal()
{
int x=0;
int randomNumber = 0;
Random randomObject = new Random();
randomNumber=randomObject.nextInt(100)+1;
if (randomNumber<=1 && randomNumber>=10)
x=4;
else if (randomNumber<=11 && randomNumber>=13)
{
x=0;
wickets++;
}
else if (randomNumber<=14 && randomNumber>=17)
x=1;
else if (randomNumber<=18 && randomNumber>=19)
x=1;
else if (randomNumber<=20 && randomNumber>=30)
x=2;
else if (randomNumber<=31 && randomNumber>=55)
x=1;
else if (randomNumber<=56 && randomNumber>=96)
x=0;
else if (randomNumber<=97 && randomNumber>=98)
x=6;
else if (randomNumber<=99 && randomNumber>=100)
x=3;
return x;
}
public int getTotal()
{
return total;
}
public int getWickets()
{
return wickets;
}
}
我試圖創建一個刺激板球比賽的java代碼。 我知道很多人可能不知道這個遊戲。基本上,我想要做的是隨機生成數字(加權概率 - 不完全隨機),並將它們添加到一個稱爲總數的靜態int。 我想使用JLabel顯示總計。
但由於某些原因,總犯規更新。它說0-0。 它應該給出像140或200其他結果,因爲我已經編碼它將隨機生成的數字添加到總數約。 120次。
我想我可能失去了一些東西。
我認爲這是顯而易見的事我這腦子空白無法讀取ATM。 有人可以幫我解決這個問題嗎? 感謝
請在此填寫代碼,而不是發佈鏈接。 – Baz 2012-08-02 16:40:26
沒有看代碼的瘋狂猜測..你的jpanel沒有被重新繪製?你可以打印出分數來控制檯,看看你是否真的得到了正確的分數..有兩個不同的問題..我的隨機數生成不工作?並且我的jpanel沒有顯示更新後的值?如果你能夠找出你想要回答的問題中的哪一個會非常有幫助 – 2012-08-02 16:43:14
在你的'batsmanNormalNormal()'方法中,哪種情況永遠會返回true?關於那個 ?再次注意這些條件檢查,我不認爲如果一個數字小於1,它可以大於或等於10,以及在第一個條件randomNumber <= 1 && randomNumber> = 10'中給出的,請注意這些條件,他們不會出現在我的:(對以上兩個評論+1 :-) – 2012-08-02 16:44:55