public boolean newLine() {
        for (boolean isBlock : grid[0]) {
            if (isBlock) return false; //highest line contains block -> game over
        }
        //System.arraycopy(grid, 1, grid, 0, height - 1); //move blocks up
        for (int y = 0; y < height - 1; y++) {
            System.arraycopy(grid[y + 1], 0, grid[y], 0, width);
        }
        Arrays.fill(grid[height - 1], true); //fill lowest line with blocks
        lineCount++;
        return true;
    }