protected int simulate(Node node, Board simBoard) {
		int myMove, otherMove;
		
		int myNr = node.playerNr;
		int myPos = simBoard.getPlayerPosition(myNr);
		int myX = Board.posToX(myPos), myY = Board.posToY(myPos);
		//get position
		int otherNr = 1 - node.playerNr;
		int otherPos = simBoard.getPlayerPosition(otherNr);
		int otherX = Board.posToX(otherPos), otherY = Board.posToY(otherPos);

		if (myNr == getNumber()) {
			//player 2 still has to perform a move first
			otherMove = playout.getMove(simBoard, otherX, otherY, otherNr);
			
			if (otherMove == Board.MOVE_NONE) {
				//check if he could've moved to our square, as that would make it a tie since it's his only option
				if (simBoard.getManhattanDistance(myX, myY, otherX, otherY) == 1)
					return 0;
				else
					return 1; //he's stuck
			}

			otherPos = simBoard.getPositionFromMove(otherX, otherY, otherMove);
			if (myPos == otherPos)
				return 0; //tie
			simBoard.performMove(otherX, otherY, otherMove, otherNr, false);
			otherX = Board.posToX(otherPos);
			otherY = Board.posToY(otherPos);
		}
		
		while (true) {
			myMove = playout.getMove(simBoard, myX, myY, myNr);
			otherMove = playout.getMove(simBoard, otherX, otherY, otherNr);
			
			if (myMove == Board.MOVE_NONE) {
				if (otherMove == Board.MOVE_NONE) 
					return 0; //both players did not move
				else
					return -1; //I did not move
			}
			else if (otherMove == Board.MOVE_NONE)
				return 1; //other did not move
			
			myPos = simBoard.getPositionFromMove(myX, myY, myMove);
			otherPos = simBoard.getPositionFromMove(otherX, otherY, otherMove);
			
			if (myPos == otherPos)
				return 0;
			
			//perform moves
			simBoard.performMove(myX, myY, myMove, myNr, false);
			simBoard.performMove(otherX, otherY, otherMove, otherNr, false);
			
			//update positions
			myX = Board.posToX(myPos);
			myY = Board.posToY(myPos);
			otherX = Board.posToX(otherPos);
			otherY = Board.posToY(otherPos);
		}
	}