I am making a card game in Greenfoot similar to hearthstone.
I'm wondering how to switch between players?
I want to make it so that as soon as one player does something, he cannot do it again until the next player does something.
   
   
            import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import javax.swing.JOptionPane;
/**
 * Write a description of class CrabWorld here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class CrabWorld extends World
{
   int playerNumbers = 2;
   int turnNumber = 0;
   int GameState = 0;
   Player[] Player = new Player[2];
   Player what = new Player();
   public void act()
{
   repaint(); 
   addObject(Player[0], 436, 440);
   addObject(Player[1], 436, 100);
   GameState = playGame(turnNumber);
}
    public CrabWorld()
    {    
    super(845, 570, 1);
    SomeDice myDice = new SomeDice();
    for (int i = 0; i < 2; i ++)
    {
    int turn = 0;
    Player[i] = new Player(); 
    //addObject(Player[i], 436, 400 * i * 2);
    
    
    }
     
   
}
public int playGame(int myTurnNumber){
        int myRound = turnNumber/playerNumbers; //check what round we are on
        int myTurn = turnNumber%playerNumbers;//whose turn is it?
        showText(""+myRound, getWidth()-20, 10); 
        showText(""+myTurn, getWidth()-20, 35);
        
        if (myRound == playerNumbers*15){
            return 0;//game over state gets reached here
        }
       
        //turnNumber += players[myTurn].takeTurn(1);
        //return gameState;
        return 2;
        
    }
  
}
import greenfoot.*;
import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.List;
/**
 * Write a description of class Player here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Player extends Actor
{
    boolean cardPossessed[] = new boolean[2];
    int[] Cards = new int[2];
    private boolean click = false;
    int health = 30;
    SomeDice playerdice = new SomeDice();
    int count = 0;
    int number;
    boolean button;
    public int position1 = 1;
    public int position2 = 1;
    SomeDice dice = new SomeDice();
    GreenfootImage[] playerImages ;
    Cards[] playerCards = {new Cards(),new Cards(),new Cards(),new Cards(),new Cards(),new Cards()};
    public Player()
    {
        
    }
   
    
    public void CardSelect()
    {
           if(getY() > 400 && Greenfoot.mouseClicked(this))
           {   
               int value = Greenfoot.getRandomNumber(6);
               getWorld().addObject(playerCards[value], 150 * position1^2, 320);
   
               position1++;
               return;
        } 
         if(getY() < 400 && Greenfoot.mouseClicked(this))
       {      
       int value = Greenfoot.getRandomNumber(6);
       getWorld().addObject(playerCards[value], 150 * position2^2 , 220);
     //  playerCards[value].Stats(number);
       if(number == 1)
       {
           setLocation(20,20);
        }
       position2++;
       return;        
    }
            
    }
 
    public void act() 
    {  
        CardSelect();
    }
    
    
}
        
import greenfoot.*; 
public class CardWorld extends World
{
    int playerCount = 2;
    int turn;
    int gameState;
    Player[] player = new Player[playerCount];
    public CardWorld()
    {    
        super(845, 570, 1);
        SomeDice myDice = new SomeDice();
        for (int i=0; i<playerCount; i++)
        {
            Player[i] = new Player(); 
        }
    }
    public void act()
    {
        repaint(); 
        addObject(player[0], 436, 440);
        addObject(player[1], 436, 100);
        gameState = playGame();
    }
    public int playGame()
    {
        int round = turn/playerCount; //check what round we are on
        int play = turn%playerCount; //whose turn is it?
        showText(""+round, getWidth()-20, 10); 
        showText(""+play, getWidth()-20, 35);
        if (round == playerCount*15) return 0;//game over state gets reached here
        return 2;
    }
}addObject(player[i], 436, 100+340*I);
import greenfoot.*; 
 
public class CardWorld extends World
{
    int playerCount = 2;
    int turn;
    int gameState;
    Player[] Player = new Player[playerCount];
 
    public CardWorld()
    {    
        super(845, 570, 1);
        SomeDice myDice = new SomeDice();
        for (int i=0; i<playerCount; i++)
        {
            Player[i] = new Player(); 
            addObject(Player[i], 436, 100+340*i);
        }
    }
 
    public void act()
    {
        addObject(Player[0], 436, 440);
        addObject(Player[1], 436, 100);
    }
 
    public void playGame()
    {
        int round = turn/playerCount; //check what round we are on
        int play = turn%playerCount; //whose turn is it?
        showText(""+round, getWidth()-20, 10); 
        showText(""+play, getWidth()-20, 35);
        if (round == playerCount*15) {
            gameState = 0;
            }//gme over state gets reached here
        
    }
}else gameState = 2;
import greenfoot.*;
 
public class Player extends Actor
{
    int position;
    Cards[] playerCards = {new Cards(),new Cards(),new Cards(),new Cards(),new Cards(),new Cards()};
    public void cardSelect()
    {
        if (getY() > 400 && Greenfoot.mouseClicked(this))
        {   
            int value = Greenfoot.getRandomNumber(6);
            getWorld().addObject(playerCards[value], 150 * (position+1)^2, 320);
            position++;
        } 
        else if (getY() < 400 && Greenfoot.mouseClicked(this))
        {      
            int value = Greenfoot.getRandomNumber(6);
            getWorld().addObject(playerCards[value], 150 * (position+1)^2 , 220);
            position++;
        }
    }
}public void cardSelect()
{
    if (position == 6) return;
    int value = Greenfoot.getRandomNumber(6-position);
    Cards card = playerCards[value];
    getWorld().addObject(card, 150*(position+1)^2, (760-getX())%440);
    position++;
    playerCards[value] = playerCards[6-position];
    playerCards[6-position] = card;
} public void act()
    {
        addObject(Player[0], 436, 440);
        addObject(Player[1], 436, 100);
        
        if(Greenfoot.mouseClicked(Player[0]))
        {
            Player[0].CardSelect();
        }
        if(Greenfoot.mouseClicked(Player[1]))
        {
            Player[1].CardSelect(); 
        }
    }public void act()
{
    if (Greenfoot.mouseClicked(player[turn%playerCount]))
    {
        player[turn%playerCount].cardSelect();
    }
}