O Astrophysical CodyMaze é uma variação do CodyMaze – criado por Alessandro Bogliolo dentro do CodeMOOC – desenvolvido pelo Instituto Nacional de Astrofísica em colaboração com a Universidade de Urbino e Digit srl. É um labirinto virtual no mundo real que propõe desafios de codificação e um quiz sobre astronomia, astrofísica e exploração espacial.

O CodyMaze ajuda a desenvolver tanto o pensamento computacional quanto as habilidades de resolução de problemas. Ao mesmo tempo, permite que os alunos revisem o programa de ciências, enquanto se divertem. Tanto os desafios de codificação quanto o quiz são direcionados para alunos a partir do ensino fundamental II (6º ao 9º ano) , e para o público adulto. Crianças pequenas também se divertem, mas sugerimos que sejam acompanhadas no uso do celular e apoiadas na execução das instruções de programação.

Neste jogo, o jogador se move em um tabuleiro de xadrez 5 x 5, cujas casas contêm QR codes. Aparentemente, o tabuleiro está livre, mas, graças aos QR codes, ele apresenta labirintos em constante mudança, que são propostos pelo @codymazebot no Telegram. O jogador se move fisicamente no tabuleiro de xadrez, seguindo as instruções do bot, e escanea o QR code que alcança em cada parada, para verificar se seguiu corretamente a sequência de instruções. Durante as várias etapas do jogo, são propostas sequências de instruções de complexidade crescente, que introduzem todos os conceitos básicos de programação. Para receber a série de instruções que levam ao próximo QR code, você deve responder corretamente a um quiz de astronomia, cujo tema depende da casa do labirinto. Para a versão astrofísica do jogo, preparamos 250 quizzes de astronomia de múltipla escolha. Portanto, se você quiser seguir o labirinto várias vezes, é muito improvável que os desafios propostos sejam os mesmos. No final do jogo, o bot do Telegram emite um certificado de conclusão, que informa a lista de códigos de programação experimentados durante o jogo.

O Espaço do Jogo

Esquema de distribuição de código QR.

O CodyMaze é jogado em uma grade quadrada 5 x 5, na qual 25 QR codes são organizados. Os QR codes ficam no chão, a pelo menos 50 cm de distância um do outro. Desta forma, o jogador pode se mover com o próprio corpo dentro do tabuleiro de xadrez, sem usar peões. Se o tabuleiro fosse realmente desenhado no chão, cada QR code ocuparia o centro de uma casa, mas a presença dos QR codes, que identificam o centro das casas, torna desnecessário traçar suas bordas. Portanto, o tabuleiro de xadrez pode não ser desenhado. As colunas e as linhas do tabuleiro de xadrez são identificadas por letras e números, começando do canto superior esquerdo. A cada QR code é atribuída uma posição, identificada por uma letra e um número. Além disso, o tabuleiro é convencionalmente orientado de forma que o lado superior corresponda ao Norte e, consequentemente, o lado inferior ao Sul, o lado esquerdo ao Oeste e o lado direito ao Leste. Se o local permitir, sugerimos que o tabuleiro de xadrez seja orientado de acordo com os pontos cardeais.

Você pode baixar os 25 QR codes imprimíveis do Astrophysical CodyMaze nos links a seguir:

Para facilitar o seu arranjo e uso, cada QR code indica tanto a posição quanto os pontos cardeais. Cinco QR codes possuem estrelas, o que afeta a execução de algumas instruções.

Objetivo do Jogo

Sair do labirinto virtual, seguindo as instruções fornecidas pelo @codymazebot.

Jogadores

O jogo pode ter um ou mais jogadores. O limite de jogadores é determinado apenas pelo tamanho do tabuleiro de xadrez, no qual os jogadores devem se mover independentemente, cada um seguindo as instruções fornecidas pelo @codymazebot.

Requisitos

Para jogar, você precisa de:

  • Smartphone ou tablet com:
  • O número de dispositivos deve ser igual ao número de jogadores que jogam ao mesmo tempo. Ao final do jogo, o mesmo smartphone pode ser usado por outro jogador, para o qual o bot apresentará um caminho diferente.

👉 Atenção: um novo aplicativo da Web está disponível e permite que você jogue sem ter o Telegram. Para jogar, basta clicar neste link! Para a versão em português, clicar em “Impostazioni” e escolher o seu idioma favorito.

Difficulties

  • O jogador não conhece o caminho; ele/ela recebe instruções do bot Telegram e deve interpretá-las e executá-las corretamente. 
  • As sequências de instruções fornecidas pelo bot são cada vez mais difíceis, tanto pelos códigos que introduzem quanto pelo seu comprimento.

Jogabilidade

O jogador interage com o jogo realizando as seguintes ações:

  • Escaneie o QR code associado à caixa em que o jogador está (enquadre com um leitor de código de barras o QR code que deseja escanear, selecione o aplicativo Telegram como o aplicativo com o qual você abre o link contido no QR code, pressione INICIAR que aparece abaixo na interface do bot do Telegram) 
  • Quiz de Astronomia (responda corretamente ao quiz de múltipla escolha proposto pelo bot) 
  • Configuração da direção (defina um dos quatro botões: Norte, Leste, Sul ou Oeste quando solicitado pelo bot) 
  • Leitura e interpretação das instruções fornecidas pelo bot (a sintaxe é descrita na seção – “design do jogo”)
  •  Execução das instruções fornecidas pelo bot (as instruções são executadas fisicamente, movendo-se no tabuleiro no chão).

Design do Jogo (regras)

Início do jogo

  1. Você só pode iniciar um novo jogo após ter concluído outros jogos, possivelmente em andamento. 
  2. Se o @codymazebot não estiver pronto para iniciar um novo jogo, pois o anterior foi interrompido, você pode retorná-lo ao início com o comando /reset
  3. Nessas condições, o jogo é iniciado quando qualquer um dos QR codes da grade é escaneado. 
  4. Para iniciar o jogo, o jogador deve escolher uma caixa externa (uma das 16 que compõem as bordas) e escanear o QR code correspondente para notificar sua escolha ao bot.
  5. O bot mostra ao jogador a direção e pede confirmação. É importante respeitar esta indicação: cada instrução subsequente deve ser seguida a partir da posição escolhida e da direção indicada pelo bot. 
  6. O bot propõe um quiz de múltipla escolha sobre astronomia. Cada caixa do labirinto é caracterizada por um tema diferente. Para continuar no labirinto, você deve responder corretamente.

Mover-se

  1. A cada passo, o bot guia o jogador com um código, acompanhado da seguinte frase: “Siga estas indicações para dar seu próximo passo e escaneie o QR code ao chegar lá“. O código segue a sintaxe descrita a seguir, na seção Sintaxe.
  2. O jogador deve se mover no tabuleiro, executando o código como se fosse um robô, prestando atenção à posição e direção iniciais.
  3. Uma vez terminada a execução, o jogador escaneia o QR code para notificar ao bot a posição que alcançou.
  4. O bot responde perguntando “Para onde você está olhando?” e  disponibilizando 4 botões para escolher a direção.
  5. O jogador indica a direção (sem girar em relação à posição assumida ao final do código)
  6. Se ele/ela executa o código corretamente, o bot diz “Ótimo! Você encontrou o ponto certo” e propõe o código para a próxima etapa.
  7. Atenção: pode acontecer que uma jogada não envolva movimento. Nesse caso, a execução correta inclui outra digitalização do QR code no qual o jogador se encontra.

Movimentos errados

  1. Um movimento é errado se o QR code errado for escaneado ou se a direção errada for configurada em comparação com as previstas pelo código fornecido pelo bot. 
  2. Após um movimento errado, o bot pede ao jogador que volte ao ponto de partida de seu último movimento, do qual fornece coordenadas e direção. A resposta do bot é: “Ops! Você cometeu um erro! Volte para a posição … olhando para … e escaneie o código novamente”
  3. O jogador deve voltar à posição indicada pelo bot, escanear o QR code, olhar na direção indicada pelo bot e selecioná-la para confirmar quando solicitado.
  4. Neste ponto, o bot fornece novamente as instruções para repetir o movimento.

Completando o labirinto

  1. No final dos movimentos previstos, o bot envia a seguinte mensagem: “Parabéns! Você completou o CodyMaze!” 
  2. O bot então pede para digitar o nome que você gostaria de ter no certificado de conclusão. A mensagem de solicitação é a seguinte: “Escreva o nome e sobrenome para exibir no certificado de conclusão:”
  3. O jogador deve digitar seu nome e sobrenome (ou qualquer outro nome, como, por exemplo, o nome da turma ou uma lista de nomes, caso o jogo tenha sido jogado em equipe). 
  4. O bot pergunta: “Você confirma que o nome enviado é …?” – para permitir que você corrija possíveis erros. 
  5. Se você responder Sim, você receberá o certificado de conclusão em seu nome. Além do nome indicado pelo jogador, o certificado contém uma identificação única que pode ser usada no futuro para verificar se o certificado é autêntico. O certificado pode ser baixado, salvo e compartilhado com orgulho! 
  6. Quando o bot envia a mensagem “Obrigado por ter jogado com o CodyMaze!”, ele está pronto para iniciar um novo jogo.

Sintaxe

Instruções Elementares. O bot usa as 3 instruções elementares do CodyRoby, representadas pelas respectivas iniciais em letras minúsculas:

  • f = passo à frente, movendo-se de um QR code para o próximo, na direção de movimento
  • e = gire à esquerda, girando 90 graus no sentido anti-horário, sem mudar de célula
  • d = gire à direita, girando 90 graus no sentido horário, sem mudar de célula

Repetições. O bot pede para repetir mais de uma instrução ou uma série de instruções, indicando o número de repetições, seguido pelo código a ser repetido entre chaves:

  • n{código} = código repetido n vezes
  • 3{f} = fff
  • 2{fe} = fefe
  • e2{f} = eff

Comandos aninhados. Repetições, assim como os demais comandos descritos a seguir, também podem ser aninhadas. Em outras palavras, o código a ser repetido pode conter repetições ou outros comandos, como nos exemplos a seguir:

  • 2{2{f}} = 2{ff} = ffff
  • 3{2{f}e} = 3{ffe} = ffeffeffe

Condições. Para expressar condições, o bot usa “se”, colocando a condição entre parênteses, e as instruções a serem executadas sob condição entre chaves:

  • se(condição){código} = execute o código somente se a condição ocorrer
  • se(condição){código1}outro{código2} = execute código1 se a condição ocorrer, senão execute código2

As condições usadas pelo bot são as seguintes:

  • caminho à frente ou existe caminho = verificado se, na direção de movimento, há pelo menos uma célula para se mover
  • caminho à direita = verificado se, em relação à posição e à direção de movimento do jogador, há pelo menos uma célula à direita
  • caminho à esquerda = verificado se, em relação à posição e à direção de movimento do jogador, há pelo menos uma célula à esquerda
  • estrela = verificado se na célula do jogador, ao redor do QR code, há estrelas
  • sem estrela = verificado se na célula do jogador, ao redor do QR code, não há estrelas

Repetições condicionadas. O bot usa o termo “enquanto” para indicar que uma ou mais instruções devem ser repetidas enquanto uma condição persistir. A condição é expressa entre parênteses, enquanto o código a ser executado é colocado entre chaves:

  • enquanto(condição){código} = execute o código enquanto a condição ocorra.

Atenção: em repetições e repetições condicionadas, você deve executar todo o código dentro de cada repetição e, em seguida, verificar novamente a condição de repetição (condição explícita ou número de repetições) para decidir se deve executá-lo novamente.

Sugestão. Para ilustrar a sintaxe aos participantes, sugerimos que todos joguem juntos, enunciando e comentando em conjunto a série de instruções que o bot atribui a cada etapa. Como alternativa, você pode criar séries de instruções de teste para simular a execução.

Créditos

CodyMaze é um projeto de Alessandro Bogliolo, desenvolvido por Brendan Paolini, Lorenz Cuno Klopfenstein e Saverio Delpriori, do Curso de Graduação em Computação Aplicada da Universidade de Urbino (LINK: https://informatica.uniurb.it/). A versão astrofísica foi desenvolvida em colaboração com o grupo de trabalho INAF Play.coding, coordenado por Maura Sandri.

Tradução em português por Mariana Rubet (Observatório do Valongo, Universidade Federal do Rio de Janeiro, Brazil) e Mariana Ferreira Gomes (Museu de Astronomia e Ciências Afins – MAST, Rio de Janeiro, Brazil)