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
- Use Firefox ou Chrome.
- 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(); }; });
 
- Nome: 
- Navega ao NNG
- Para save: vá no Main Menu do jogo, e selecione o bookmark nng-save.
- Para load: vá no Main Menu do jogo, e selecione o bookmark nng-load.
Como botar minhas resoluções no git (primeira vez)
- 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.
- Cria o diretório fmclean/nng.
- Copia nele teu nngsave.jsone faça umgit add nngsave.jsonpara adicioná-lo no git, egit commit.
Como atualizar meu progresso
- Salve o jogo para criar um novo nngsave.json, e copia em cima do antigo, o substituindo.
- 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.