2017-09-08 12 views
-3

私はこれが私がここで尋ねるべき質問のようなものではないと信じていますので、私は事前に謝ります。私は2日で試験を受けました。私の質問のすべてをクリアするレッスンを教えてくれる先生がキャンセルしなければなりませんでした。私は昨年からの試験を解決しています。質問の1つは、6つの数字の宝くじゲームをかなりシミュレートする小さなJavaプログラムを作ることです。私の質問は効率性に関するもので、試験は紙に書かれています。コンピュータに入力したすべてのものを書いていて、十分な時間がないと思っています。これは90分ですが、これは問題の1つに過ぎません。私の強みなので、私はこれをはるかに少ない行で書くことができると考えています。パブリックインスタンス変数 'key'は、実装する必要のないランダムキーを生成する別のクラスのメソッドをシミュレートするためのものです。 FlowLayout、BorderLayout、CardLayout、およびGridLayoutのみを使用できます。Java宝くじゲームの効率、スイング

パブリッククラスGrupo2Aは、私は本当にあなたが試験に紙にUIを書くように頼まれていない願っていたJFrame {

private JPanel panelCont = new JPanel(); 
private JPanel panelUser = new JPanel(); 
private JPanel panelResult = new JPanel(); 
private JPanel p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11; 
private JLabel l1, l2, l3, l4, l5, l6, l7, l8, l9; 
private JTextField t1, t2, t3, t4, t5, t6; 
private JButton b1, b2, b3; 
private int[] userKey = new int[6]; 
private CardLayout cl = new CardLayout(); 
private GridLayout gl1 = new GridLayout(8, 1); 
private GridLayout gl2 = new GridLayout(3, 1); 
public int[] key = {12, 13, 16, 22, 33, 40}; 

private static final int WINDOW_HEIGHT1 = 600; 
private static final int WINDOW_HEIGHT2 = 150; 
private static final int WINDOW_WIDTH1 = 300; 

public Grupo2A() { 
    panelCont.setLayout(cl); 
    panelCont.add(panelUser, "panelUser"); 
    panelCont.add(panelResult, "panelResult"); 
    panelUser.setLayout(gl1); 
    panelResult.setLayout(gl2); 
    setSize(WINDOW_WIDTH1, WINDOW_HEIGHT1); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setLocationRelativeTo(null); 
    add(panelCont); 

    createComponents(); 
    createPanelUser(); 
    createPanelResult(); 
    cl.show(panelCont, "panelUser"); 
    setVisible(true); 
} 

private void createComponents() { 

    l1 = new JLabel("Lottery"); 
    l2 = new JLabel("1"); 
    l3 = new JLabel("2"); 
    l4 = new JLabel("3"); 
    l5 = new JLabel("4"); 
    l6 = new JLabel("5"); 
    l7 = new JLabel("6"); 

    t1 = new JTextField(10); 
    t2 = new JTextField(10); 
    t3 = new JTextField(10); 
    t4 = new JTextField(10); 
    t5 = new JTextField(10); 
    t6 = new JTextField(10); 

    b1 = new JButton("Play"); 
    b1.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent ae) { 
      int[] userKey = new int[6]; 
      userKey[0] = Integer.parseInt(t1.getText()); 
      userKey[1] = Integer.parseInt(t2.getText()); 
      userKey[2] = Integer.parseInt(t3.getText()); 
      userKey[3] = Integer.parseInt(t4.getText()); 
      userKey[4] = Integer.parseInt(t5.getText()); 
      userKey[5] = Integer.parseInt(t6.getText()); 
      setUserKey(userKey); 
      l8.setText("You got " + correctNumbers() + " numbers"); 
      l9.setText("The key was: " + Arrays.toString(key)); 
      cl.show(panelCont, "panelResult"); 
      setSize(WINDOW_WIDTH1, WINDOW_HEIGHT2); 
     } 

    }); 
    b2 = new JButton("Clear"); 
    b2.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent ae) { 
      t1.setText(""); 
      t2.setText(""); 
      t3.setText(""); 
      t4.setText(""); 
      t5.setText(""); 
      t6.setText(""); 
     } 

    }); 

    p1 = new JPanel(); 
    p2 = new JPanel(); 
    p3 = new JPanel(); 
    p4 = new JPanel(); 
    p5 = new JPanel(); 
    p6 = new JPanel(); 
    p7 = new JPanel(); 
    p8 = new JPanel(); 
    p9 = new JPanel(); 
    p10 = new JPanel(); 
    p11 = new JPanel(); 

} 

private void createPanelUser() { 
    p1.add(l1); 
    panelUser.add(p1); 
    p2.add(l2); 
    p2.add(t1); 
    panelUser.add(p2); 
    p3.add(l3); 
    p3.add(t2); 
    panelUser.add(p3); 
    p4.add(l4); 
    p4.add(t3); 
    panelUser.add(p4); 
    p5.add(l5); 
    p5.add(t4); 
    panelUser.add(p5); 
    p6.add(l6); 
    p6.add(t5); 
    panelUser.add(p6); 
    p7.add(l7); 
    p7.add(t6); 
    panelUser.add(p7); 
    p8.add(b1); 
    p8.add(b2); 
    panelUser.add(p8); 
} 

private void createPanelResult() { 
    l8 = new JLabel("You got " + correctNumbers() + " numbers"); 
    l9 = new JLabel("The key was: " + Arrays.toString(key)); 
    b3 = new JButton("Ok"); 
    b3.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent ae) { 
      cl.show(panelCont, "panelUser"); 
      setSize(WINDOW_WIDTH1, WINDOW_HEIGHT1); 
     } 

    }); 
    p9.add(l8); 
    p10.add(l9); 
    p11.add(b3); 
    panelResult.add(p9); 
    panelResult.add(p10); 
    panelResult.add(p11); 
} 

private int correctNumbers() { 
    int cont = 0; 
    for (int i = 0; i < userKey.length; i++) { 
     for (int j = 0; j < key.length; j++) { 
      if (userKey[i] == key[j]) { 
       cont++; 
       break; 
      } 
     } 
    } 
    System.out.println(cont); 
    return cont; 
} 

private void setUserKey(int[] userKey) { 
    this.userKey = userKey; 
} 

}

+1

コードダンプを使用してサイトを膨らませてはいけません。詳細を指摘し、判読可能な質問をしてください。 – nullpointer

+1

あなたの疑惑は正しいです、この種の質問はこのサイトに属していません。 –

+0

あなたの質問は?あなたが時間を心配しているなら、あなたのデザインの図から始めて、セクションにラベルを付けて、コードでどのようにそれらを達成するのか、どのようなものを使用するのか、そしてなぜそれを表示しますか? – MadProgrammer

答えて

0

を拡張します。それはあなたが実際にやる必要があるものに似ていないので、あなたの知識をテストするのは非常にばかげた方法でしょう。

コードの読みやすさを向上させる方法はたくさんあります。しかし、明確かつ簡潔であることに関して、重要な原則はドライです:自分自身を繰り返さないでください。

たとえば、6つのパネル、ラベル、フィールドがほぼ同じコードで宣言され、初期化されています。ほとんどの場合、コードを別のクラスにカプセル化する必要があります。次のようなものがあります。