private synchronized void newblock() {
        // Check:
        if (activeblock != null) {
            return;
        }
        if (nextblock == null) {
            nextblock = getRandBlock();
        }

        //Next block becomes this block.
        activeblock = nextblock.clone();

        //Generate random block.
        nextblock = getRandBlock();

        if (!copy()) {
            gameover();
        }

        //Bonus?
        score += 1;

        //Successfully dropped 1 block, here.
        blocksdropped += 1;

        if (!tetris.isHumanControlled
                && System.currentTimeMillis() - lastnewblock > (200 + 50 * AbstractAI.waittime)) {
            System.out.println("Anomaly detected, retrying...");
            anomaly_flag = true;
            gameover();
        }

        lastnewblock = System.currentTimeMillis();
    }