I'm doing a "game" for a school project and I fall in a problem. I have 4 pawn (player) and I must to move them from the value of a dice roll in a snake circuit.
Where must I put the player movement and how can i link it with the dice?
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class background extends World {
private Dice dice = new Dice();
private Player player1 = new Player(0);
private Player player2 = new Player(1);
private Player player3 = new Player(2);
private Player player4 = new Player(3);
private int hasTurn = 0;
public background() {
super(9, 8, 100);
addObject(new Tabellone(),4,4);
addObject(player1, 0, 7);
addObject(player2, 0, 7);
addObject(player3, 0, 7);
addObject(player4, 0, 7);
addObject(dice,4, 7);
prepare();
}
public void act (){
/*if (Greenfoot.mouseClicked(dicebutton)){
player1.act();
//player1.move(dice.Dice());
/*
* switch
*
*/
//}
}
private void prepare()
{
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Player extends Actor
{
static GreenfootImage[] images = { new GreenfootImage("Player1.png"), new GreenfootImage("Player2.png"), new GreenfootImage("Player3.png"), new GreenfootImage("Player4.png")};
private Dice dice = new Dice();
int playerNumber;
public Player(int pNum){
playerNumber = pNum;
setImage(images[pNum]);
}
public void act() {
int tiroDadi = dice.Dice();
System.out.println(tiroDadi);
int movimenti = tiroDadi;
for ( int i = 0; i < tiroDadi; i++){
int x = getX();
int y = getY();
if (x==8 && y==0 && movimenti==0) {
//win
} else if (x==8 && y==0 && movimenti!=0){
setLocation(x-movimenti, y);
break;
} else if (x==0 || x==8){
setLocation(x, y+1);
movimenti--;
} else if (y==0 || y==2 || y==4 || y==6){
setLocation(x+1, y);
movimenti--;
} else {
setLocation(x-1, y);
movimenti--;
}
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
public class Dice extends Actor{
public int Dice(){
int rollData=0;
rollData = roll();
return rollData;
}
public int roll(){
int randNumber1 = 1+Greenfoot.getRandomNumber(5);
int randNumber2 = 1+Greenfoot.getRandomNumber(5);
int randNumber = randNumber1+randNumber2;
setImage(new GreenfootImage(""+randNumber1+" - "+""+randNumber2,25,Color.BLACK,Color.WHITE));
System.out.println("roll()"+randNumber);
return randNumber;
}
}
public void moveOneSpace()
{
if (getX()%8 == 0 && getY()%2+(getX()%9)/8 == 1) setLocation(getX(), getY()-1);
else setLocation(getX()+1-2*(getY()%2), getY());
}