Matcha9000

Os jogos salvos ficam apenas neste navegador.

Sobre o jogo

Matcha9000 coloca um pequeno robô num tabuleiro cercado de paredes e nunca deixa você controlá-lo diretamente. Em vez disso, o lado esquerdo da tela guarda um programa numerado de até vinte linhas, e o canto inferior direito mostra os op codes (instruções) que você pode usar. Clique num deles e ele vai para o fim do programa; o robô executa o programa do começo, sem parar, num ritmo constante, e o tabuleiro recomeça cada vez que o programa chega à última linha.

O objetivo de toda fase é a casa de saída. Algumas fases pedem antes que você pegue todas as moedas, mostradas num contador no alto, para a saída abrir. Outras trazem botões que precisam ser apertados e lasers que cruzam o tabuleiro. Novos op codes são liberados pelo caminho:

Op code A partir da fase O que faz
STEP 1 anda uma casa para a frente
SLEEP 2 espera um tempo
ROT N 3 gira no sentido horário N vezes
USE 4 aperta o botão à frente
GOTO N 5 pula para a linha N
ADD N 6 soma N ao acumulador
DEC N 7 subtrai N do acumulador
JIF N 8 pula para a linha N se o acumulador for zero

Nas últimas fases você está escrevendo pequenos laços com contador, que é exatamente como funciona a linguagem assembly de verdade. O jogo tem nove fases e guarda a fase alcançada no disco do WASM-4.

Jogando aqui

Matcha9000 foi feito para o WASM-4, um fantasy console: um portátil imaginário com tela de 160 por 160, quatro cores, um direcional e dois botões, para o qual desenvolvedores independentes criam jogos novos. O desenvolvedor dosisod o escreveu em AssemblyScript para a segunda game jam do WASM-4, em agosto de 2022. A versão que roda aqui é a 1.0.2, no runtime oficial do WASM-4. Clique em Jogar, leia as instruções curtas (em inglês) e clique em NEXT.

O jogo é jogado com o mouse. A fase atual fica guardada no navegador. O Enter abre o menu do WASM-4, onde também dá para salvar e carregar o estado enquanto a página está aberta.

Controles

Entrada Ação
Clique esquerdo num op code (canto inferior direito) acrescentá-lo ao fim do programa
Clique direito numa linha do programa apagá-la
Clique num argumento (N) abrir os botões + / - para mudar o valor
R reiniciar o cartucho na fase atual
Segurar Z ou X enquanto o cartucho reinicia voltar o progresso para a fase 1
Enter menu do WASM-4

Algumas coisas que vale saber

O programa roda sozinho, em laço. Não há botão de executar: assim que você acrescenta uma linha, o robô começa a andar, e o tabuleiro recomeça cada vez que a última linha roda. Assista a um ciclo inteiro antes de acrescentar a próxima instrução.

Conte as casas. A maioria das primeiras fases se resolve contando quantos STEPs o robô precisa antes de cada curva.

GOTO economiza espaço. Vinte linhas acabam rápido. Uma sequência curta seguida de um GOTO para a linha 1 se repete quantas vezes for preciso.

Créditos e licença

Matcha9000 foi criado por dosisod, que escreveu o jogo, os gráficos e os efeitos sonoros em AssemblyScript. É software livre sob a GNU General Public License, versão 3, e o código-fonte da versão servida aqui está hospedado junto do jogo. O jogo compilado também traz o runtime do AssemblyScript (Apache License 2.0) e as ligações do WASM-4 (licença ISC), e roda aqui no runtime do WASM-4 (licença ISC). Os textos das licenças estão linkados nesta página.