2016-06-17 3 views
0

У меня есть одна кнопка: Gooi У меня есть 2 игрока, которые могут бросать кости после eachother. Таким образом, игрок 1 получает бросок, затем игрок 1, затем игрок 2. Я не знаю, как это сделать. Я не знаю, должен ли я использовать какое-то время или цикл, чтобы проверить, как это происходит.Как переключить игроков на кнопку?

Мой код:

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 на другого игрока.