1

classMain.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回。

私は何かが欠けているかもしれないと思います。

私の空白の脳が読めない明らかなものだと思います。誰かがこれで私を助けてくれますか? ありがとう

4

1 に答える 1

1

大なり記号と小なり記号が正しい場所にあることを確認してください。

このプログラムでは、if ステートメントと else if ステートメントが実行されることはありません。これは、そこに設定した条件が決して真にならないためです。

そのため、合計スコアは更新されません。

于 2012-08-02T17:11:13.037 に答える