2016-04-27 3 views
0

私はアプレットがカードを "****"で表向きにして起動するときにペアカードゲームを作ろうとしています.JButtonを押すとランダムに選択された数字に基づいて図が表示されます2枚のカードに同じ乱数を与えると私は何を、図では、私がJButtonを押すたびに変更する必要はありませんが、私は乱数を選んで保存する方法は?

import javax.swing.*; 
import java.util.Stack; 
import java.awt.*; 
import java.applet.Applet; 
import java.awt.event.*; 
import java.util.*; 
public class Memorando extends Applet implements ActionListener { 
    JButton cartas[]; 
    JButton juegoNuevo; 
    Label marcador; 

    public void init(){ 
     this.setLayout(new BorderLayout()); 
     this.setBackground(Color.CYAN); 
     Font appletFont=new Font("Monospased", Font.BOLD, 20); 
     this.setFont(appletFont); 
     juegoNuevo=new JButton("Juego nuevo"); 
     juegoNuevo.addActionListener(this); 
     Panel topPanel=new Panel(); 
     topPanel.add(juegoNuevo); 
     this.add(topPanel,"North"); 
     cartas=new JButton[8]; 

     Panel panelCentral=new Panel(); 
     panelCentral.setLayout(new GridLayout(2,4)); 
     this.add(panelCentral,"Center"); 
     marcador=new Label("No has ganado aun :("); 
     this.add(marcador,"South"); 
     for(int i=0;i<8;i++){ 
      cartas[i]=new JButton("*********"); 
      cartas[i].addActionListener(this); 
     cartas[i].setBackground(Color.WHITE); 
      panelCentral.add(cartas[i]); 
     } 
    } 


    public void actionPerformed(ActionEvent e) { 


     JButton boton=(JButton) e.getSource(); 
     String[] figuras=new String[8]; 
     figuras[0]="♥"; 
     figuras[1]="♣"; 
     figuras[2]="♠"; 
     figuras[3]="♦"; 

     if(boton == juegoNuevo){ 
      for(int i=0;i<8;i++){ 

      cartas[i].setEnabled(true); cartas[i].setLabel("*********"); 
       cartas[i].setBackground(Color.CYAN); 
       } 

      marcador.setText("Juego nuevo"); 
      juegoNuevo.setEnabled(false); 
      return; 

     } 
     int random = new Random().nextInt(3)+1; 
      if(boton == cartas[0]){ 
        cartas[0].setLabel(figuras[random]); 
       } 
        if(boton == cartas[1]){ 
        int numAleatorio=(int) (Math.random()*4); 
          cartas[1].setLabel(figuras[random]); 
         } 
        if(boton == cartas[2]){ 
         int numAleatorio=(int) (Math.random()*4); 
           cartas[2].setLabel(figuras[numAleatorio]); 
          } 
        if(boton == cartas[3]){ 
         int numAleatorio=(int) (Math.random()*4); 
           cartas[3].setLabel(figuras[numAleatorio]); 
          } 
        if(boton == cartas[4]){ 
         int numAleatorio=(int) (Math.random()*4); 
           cartas[4].setLabel(figuras[numAleatorio]); 
          } 
        if(boton == cartas[5]){ 
         int numAleatorio=(int) (Math.random()*4); 
           cartas[5].setLabel(figuras[numAleatorio]); 
          } 
        if(boton == cartas[6]){ 
         int numAleatorio=(int) (Math.random()*4); 
           cartas[6].setLabel(figuras[numAleatorio]); 
          } 
        if(boton == cartas[7]){ 
         int numAleatorio=(int) (Math.random()*4); 
           cartas[7].setLabel(figuras[numAleatorio]); 
          } 
    } 
    } 
+0

これは私がJButtonをクリックするたびに変わるので、私はランダムに数字を拾う必要がありますが、それは静的でなければなりません –

+0

アプリを実行するたびに同じ乱数セットを取得したい場合は、ランダムジェネレータの種を設定します。 –

+0

私の問題は、私がカードを比較しようとしていることです。両方のカードの数字が同じでない場合、カードが元に戻ってきて、それと同等であれば、カードが上になるので、 –

答えて

1

cricket_007が言ったようにそれを行う方法を正確に知っていません解釈は、変数に値を格納したいということです。この場合は、int random = new Random().nextInt(x)+1のようなコードを使用してください。ここでxは範囲です(例:1〜100はRandom.nextInt(100)+1です)

関連する問題