2016-06-17 6 views
0

私は1つのボタンがあります:Gooi 私はお互いの後にサイコロを投げることができる2人の選手がいます。そこで、プレーヤー1がスローされ、プレーヤー1がスローされ、プレーヤー2がスローされます。私はそれをどうやって行うのか分かりません。私はwhileまたはforループを使用して、プレーヤーの順番を確認する必要があるかどうかわかりません。ボタンクリックでプレーヤーを切り替えるにはどうすればよいですか?

マイコード:

package Opdrachten; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 

import javax.swing.*; 

public class spel extends JPanel { 
private JButton knop; 
private boolean geklikt, player1, player2; 
private JLabel speler1, speler2, plekOpBord, gegooid, bijzonderheid; 
Random rand = new Random(); 
int waardeP1 = rand.nextInt(6) + 1; 
int waardeP2 = rand.nextInt(6) + 1; 
int optelP1 = 0; 
int optelP2 = 0; 

public spel() { 
    setBackground(Color.WHITE); 
    knop = new JButton("Gooi"); 
    knop.addActionListener(new KnopHandler()); 
    knop.setBounds(20,20, 100,20); 
    speler1 = new JLabel("Speler 1"); 
    speler2 = new JLabel("Speler 2"); 
    speler1.setBounds(20, 50, 50, 50); 
    speler2.setBounds(20, 80, 50, 50); 
    gegooid = new JLabel(""); 
    gegooid.setBounds(140, 5, 150, 50); 
    plekOpBord = new JLabel("Plek op het bord"); 
    plekOpBord.setBounds(140, 35, 100,50); 
    bijzonderheid = new JLabel("Bijzonderheid"); 
    bijzonderheid.setBounds(260, 35, 100,50); 


    add(knop); 
    add(gegooid); 
    add(speler1); 
    add(speler2); 
    add(plekOpBord); 
    add(bijzonderheid); 



} 

public void paintComponent(Graphics g) { 
    super.paintComponent(g); 


    if(geklikt) { 
     optelP1 += waardeP1; 
     g.drawString("Speler 1 " + " heeft " + waardeP1 + " gegooid", 150,40); 
     g.drawString(""+optelP1, 175, 85); 
    } 

    if (optelP1 == 3) { 
     g.drawString("Bokkesprong", 260, 85); 
    } 
    if (optelP1 == 6) { 
     g.drawString("Brug", 260, 85); 
    } 
    if (optelP1 == 15) { 
     g.drawString("Vogelkooi", 260, 85); 
    } 
    if(optelP1 == 19){ 
     g.drawString("Hotel", 260, 85); 
    } 
    if(optelP1 == 26){ 
     g.drawString("Dobbelsteenvakje", 260, 85); 
    } 
    if(optelP1 == 31){ 
     g.drawString("Put", 260, 85); 
    } 
    if(optelP1 == 39){ 
     g.drawString("Trap", 260, 85); 
    } 
    if(optelP1 == 42){ 
     g.drawString("Labyrint", 260, 85); 
    } 
    if(optelP1 == 52){ 
     g.drawString("Gevangenis", 260, 85); 
    } 
    if(optelP1 == 58){ 
     g.drawString("Graf", 260, 85); 
    } 
    if(optelP1 == 63){ 
     g.drawString("Zonsondergang", 260, 85); 
    } 


    if(geklikt) { 
     optelP2 += waardeP2; 
     //g.drawString("Speler 1 " + " heeft " + waardeP2 + " gegooid", 150,40); 
     g.drawString(""+optelP2, 175, 110); 
    } 

    if (optelP2 == 3) { 
     g.drawString("Bokkesprong", 260, 110); 
    } 
    if (optelP2 == 6) { 
     g.drawString("Brug", 260, 110); 
    } 
    if (optelP2 == 15) { 
     g.drawString("Vogelkooi", 260, 110); 
    } 
    if(optelP2 == 19){ 
     g.drawString("Hotel", 260, 110); 
    } 
    if(optelP2 == 26){ 
     g.drawString("Dobbelsteenvakje", 260, 110); 
    } 
    if(optelP2 == 31){ 
     g.drawString("Put", 260, 110); 
    } 
    if(optelP2 == 39){ 
     g.drawString("Trap", 260, 110); 
    } 
    if(optelP2 == 42){ 
     g.drawString("Labyrint", 260, 110); 
    } 
    if(optelP2 == 52){ 
     g.drawString("Gevangenis", 260, 110); 
    } 
    if(optelP2 == 58){ 
     g.drawString("Graf", 260, 110); 
    } 
    if(optelP2 == 63){ 
     g.drawString("Zonsondergang", 260, 110); 
    } 
} 

class KnopHandler implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
     geklikt = true; 
     waardeP1 = rand.nextInt(6) + 1; // get another random number 
     waardeP2 = rand.nextInt(6) + 1; // get another random number 
     repaint(); 

    } 
} 

} 

答えて

0

投げ選手を変更し、各スローでそれを切り替えるブール値を使用します。 ブール値を切り替える最も簡単な方法は次のとおりです。

switchBoolean = !switchBoolean; 
0

まず、if-sを取り除くことをお勧めします。スイッチを試してみると、読みやすくなります。

プレイヤーの切り替えは、ゲームを制御するクラスに実装することができます。可変のPlayerのcurrentPlayerを作成します。ここでいくつかの終了条件を持つwhileループを作成し、各ダイスがcurrentPlayerを他のプレーヤーに変更した後に作成します。

関連する問題