@Override
	public void createPossibleMoves() {
		possibleMoves = new ArrayList<Square>();
		//direction boolean is set to false if a piece is blocking the direction
		boolean nw = true, ne = true, sw = true, se = true;

		for(int i = 1; i < ChessEngine.SQUARE_HEIGHT; i++) {
			
			//if no more squares can be valid, break.
			if(!nw && !ne && !sw &&!se) break;
			
			/* Check north west direction */
			if(nw) {
				int dx = x, dy = y;
				//new coordinates for North-West direction.
				dx += i * -1;
				dy += i * -1;
				nw = checkMovableSquare(dx, dy);
			}
			/* Check North-East direction */
			if(ne) {
				int dx = x, dy = y;
				//new coordinates for North-East direction
				dx += i * 1;
				dy += i * -1;
				ne = checkMovableSquare(dx, dy);
			}
			/* Check South-West direction */
			if(sw) {
				int dx = x, dy = y;
				//new coordinates for North-West direction.
				dx -= i;
				dy += i;
				sw = checkMovableSquare(dx, dy);
			}
			/* Check South-East direction */
			if(se) {
				int dx = x, dy = y;
				//new coordinates for North-West direction.
				dx += i;
				dy += i;
				se = checkMovableSquare(dx, dy);
			}
			
		}
	}