NNG

O objetivo é jogar e completar o NNG (Natural Number Game). Cada level tem um teorema que precisa ser demonstrado, e o jogador escreve o código que falta para completar sua demonstração. Observe que antes e depois do código do jogador são visíveis linhas de código necessárias para compilar. O jogador não tem como editar/alterar essas linhas.

Como fazer save game e load game

  1. Use Firefox ou Chrome.
  2. Crie três novos bookmarks, com os campos seguintes (deixe outros campos sem nada, e cuidado: os URLs são 1 linha cada):
    • Nome: nng-main
      URL: https://www.ma.imperial.ac.uk/~buzzard/xena/natural_number_game/
    • Nome: nng-save
      URL: javascript:(function save(data, filename) { if(!window.location.href.endsWith("natural_number_game/")){ alert("To load saved game, go to the main page first!"); return; }; var file = new Blob([JSON.stringify(JSON.parse(data), null, 2)]); var a = document.createElement("a"), url = URL.createObjectURL(file); a.href = url; a.download = filename; document.body.appendChild(a); a.click(); setTimeout(function() { document.body.removeChild(a); window.URL.revokeObjectURL(url); }, 0); })(window.localStorage.getItem("Natural number game-1-savedGameData"), "nngsave.json");
    • Nome: nng-load
      URL: javascript:(function(){ return new Promise((resolve) => { if(!window.location.href.endsWith("natural_number_game/")){ alert("To load saved game, go to the main page first!"); resolve(""); }else{ const uploader = document.createElement('input'); uploader.type = 'file'; uploader.style.position = 'relative'; uploader.addEventListener('change', () => { const files = uploader.files; if (files.length) { const reader = new FileReader(); reader.addEventListener('load', () => { uploader.parentNode.removeChild(uploader); resolve(reader.result); }); reader.readAsText(files[0]); }; }); document.body.appendChild(uploader); document.getElementById("root").style.display = 'none'; }; }); })().then(text => { console.log(text); if(text){ window.localStorage.setItem("Natural number game-1-savedGameData", text); window.location.reload(); }; });
  3. Navega ao NNG
  4. Para save: vá no Main Menu do jogo, e selecione o bookmark nng-save.
  5. Para load: vá no Main Menu do jogo, e selecione o bookmark nng-load.

Como botar minhas resoluções no git (primeira vez)

  1. Primeiramente siga as instruções do FAQ sobre lean e sobre git. Deves ter no teu computador uma pasta chamada fmclean, com uns arquivos/diretórios já nela.
  2. Cria o diretório fmclean/nng.
  3. Copia nele teu nngsave.json e faça um git add nngsave.json para adicioná-lo no git, e git commit.

Como atualizar meu progresso

  1. Salve o jogo para criar um novo nngsave.json, e copia em cima do antigo, o substituindo.
  2. Commita tais mudanças no teu repo, e push’a para o github.

Dúvidas?

Obviamente no nosso Zulip, nos #tech ou #meta-* ou #proofassistants.