How to Solve Level 47 in I’m Not a Robot (Neal.fun)

If you are into simple and fun browser games, you might have heard of Neal.fun, created by Neal Agarwal.

Neal has built a variety of browser games on his website, and the latest entry, I’m Not a Robot, is grabbing a lot of attention.

The game is inspired by internet captchas and security checks, especially the frequently seen prompt, Are you a Robot?. It strings together mini puzzles that test your “humanness” level by level, turning familiar online tasks into something cheeky and fun.

As you keep clearing levels, the game demands more effort and IQ to prove you are not a robot.

And if you need help, we’ve got you covered.

In this post, we’ve shared Hints as well as the full Solution for Level 47 of I’m Not a Robot.

We recommend trying to solve the level using the hint provided, since figuring it out on your own is the real fun. But if you’re still stuck, you can check the solution.


Hints for Level 47 in I’m Not a Robot

Hints – Press arrow keys to dance!


How to Solve Level 47 in I’m Not a Robot

Level 47 Name – Din Don Dan

Solution – You just need to press the arrow keys according to the sequence appearing on the screen. As you progress, the scrolling speed increases and it will be difficult to maintain accuracy.

If you want to clear the level using a cheat, you can follow the steps below –

  1. Press “F12” on your keyboard to open the Developer Tools panel.
  2. At the bottom of the panel, select the “Console” tab.
  3. Type ‘allow pasting’ and press enter.
  4. Copy and paste this code into the console and press Enter.

    // cache arrow targets once
    const arrowsContainer = document.querySelector(‘.arrows-container’);
    const targets = {
    ‘←’: arrowsContainer?.querySelector(‘.arrow-key:nth-child(1)’) || null,
    ‘↓’: arrowsContainer?.querySelector(‘.arrow-key:nth-child(2)’) || null,
    ‘↑’: arrowsContainer?.querySelector(‘.arrow-key:nth-child(3)’) || null,
    ‘→’: arrowsContainer?.querySelector(‘.arrow-key:nth-child(4)’) || null
    };

    const keyMap = {
    ‘↑’: ‘ArrowUp’,
    ‘↓’: ‘ArrowDown’,
    ‘←’: ‘ArrowLeft’,
    ‘→’: ‘ArrowRight’
    };

    const hitNotesSet = new WeakSet();
    const tolerance = 10; // hassasiyet

    function dispatchGameKey(key) {
    // many games listen on window or document
    const opts = { key, bubbles: true, cancelable: true };
    window.dispatchEvent(new KeyboardEvent(‘keydown’, opts));
    document.dispatchEvent(new KeyboardEvent(‘keydown’, opts));
    window.dispatchEvent(new KeyboardEvent(‘keyup’, opts));
    document.dispatchEvent(new KeyboardEvent(‘keyup’, opts));
    }

    function isAlignedY(note, target, tol) {
    const nr = note.getBoundingClientRect();
    const tr = target.getBoundingClientRect();
    const noteY = nr.top + nr.height / 2;
    const targetY = tr.top + tr.height / 2;
    return Math.abs(noteY – targetY) <= tol;
    }

    function tick() {
    const notes = document.querySelectorAll(‘.note’);
    for (const note of notes) {
    if (hitNotesSet.has(note)) continue;

    const arrow = note.innerText.trim();
    const target = targets[arrow];
    if (!target) continue;

    if (isAlignedY(note, target, tolerance)) {
    const key = keyMap[arrow];
    if (key) {
    // log for debugging
    // console.log(`Pressed: ${arrow} ${key}`);
    dispatchGameKey(key);
    hitNotesSet.add(note);

    // optional remove or mark
    // note.classList.add(‘hit’);
    // note.remove();
    }
    }
    }
    requestAnimationFrame(tick);
    }

    requestAnimationFrame(tick);

  5. Start the game and see the code working.

Explanation – This puzzle tests your reflexes. Selecting the right key on time is the key.


Need more help?

Check our I’m Not a Robot section and find Hints and Solutions for other levels.