public void nJump(Piece piece) {
		
		ArrayList<Tile> jumpTargets = new ArrayList<Tile>(this.jumpTargets);
		ArrayList<Tile> newTargets = new ArrayList<Tile>();
		if(jumpTargets.isEmpty())
			return;

		this.isNJumping = true;
		for(Tile t: jumpTargets) {
			this.lastJumpTile = t;
//			System.out.println("for loop10");
			calcTargets(new Point(t.getTileColumn(), t.getTileRow()), piece.getColor(), piece.isKing());
			if(!this.jumpTargets.isEmpty()) {
				for(Tile t2:this.jumpTargets) {
//					System.out.println("for loop11");
					if(!this.visited[t2.getIndex()] && !this.targets.contains(t2)) {
						this.targets.add(t2);
						newTargets.add(t2);
						this.visited[t2.getIndex()] = true;
					}
				}
				this.jumpTargets = new ArrayList<Tile>(newTargets);
				nJump(piece);
			}
		}

		this.visited = new Boolean[tiles.size()];
		for(int i = 0; i < this.visited.length; i++) {
//			System.out.println("for loop12");
			this.visited[i] = false;
		}
		
		this.isNJumping = false;
		this.lastJumpTile = null;
	}