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.json
e faça umgit add nngsave.json
para 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
.