Rating:

We are given the URL <https://ddg.mc.ax/> and a game board is loaded onto the page. The goal is to used the WASD keys to move the dice to touch the black square. Every move the black square moves a random direction.

![DDG board][DDG1]

Taking a look at the page we can see the source code to the game is all in the page it self. After reading through the code we see the `win()` function that looks like the following:

```javascript
function win(history) {
const code = encode(history) + ";" + prompt("Name?");

const saveURL = location.origin + "?code=" + code;
displaywrapper.classList.remove("hidden");

const score = history.length;

display.children[1].innerHTML = "Your score was: " + score + "";
display.children[2].href =
"https://twitter.com/intent/tweet?text=" +
encodeURIComponent(
"Can you beat my score of " + score + " in Dice Dice Goose?",
) +
"&url=" +
encodeURIComponent(saveURL);

if (score === 9) log("flag: dice{pr0_duck_gam3r_" + encode(history) + "}");
}
```

If we win on 9 moves looks like the flag prints out. Either we get really lucky and the random moves the goose makes are 9 moves to the left from it's start, or we cheat. Let's do some cheating!

Looking through more of the code we find an event handler for the `document.onkeypress()` and it looks like this:

```javascript
document.onkeypress = (e) => {
if (won) return;

/*
... Player movement handling code removed for the write up ...
*/

if (player[0] === goose[0] && player[1] === goose[1]) {
win(history);
won = true;
return;
}

do {
nxt = [goose[0], goose[1]];
switch (Math.floor(4 * Math.random())) {
case 0:
nxt[0]--;
break;
case 1:
nxt[1]--;
break;
case 2:
nxt[0]++;
break;
case 3:
nxt[1]++;
break;
}
} while (!isValid(nxt));

goose = nxt;

history.push([player, goose]);
}
```

If we set a break point on the line `goose = nxt;` we should be able to control the next move of the goose and move it to the left when we move our player down. When the break point gets hit we can use the console to decrement the 2nd element by one until the next player move gets us the win condition. The console should look like this:

```text
nxt = [9,8]
(2) [9, 8]
nxt = [9,7]
(2) [9, 7]
nxt = [9,6]
(2) [9, 6]
nxt = [9,5]
(2) [9, 5]
nxt = [9,4]
(2) [9, 4]
nxt = [9,3]
(2) [9, 3]
nxt = [9,2]
(2) [9, 2]
nxt = [9,1]
(2) [9, 1]
(index):100 flag: dice{pr0_duck_gam3r_AAEJCQEBCQgCAQkHAwEJBgQBCQUFAQkEBgEJAwcBCQIIAQkB}
```

`{pr0_duck_gam3r_AAEJCQEBCQgCAQkHAwEJBgQBCQUFAQkEBgEJAwcBCQIIAQkB}`

[DDG1]: data:image/png;base64,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