Reuse Blocks foi inspirado no ambiente de programação Scratch (KALELIOGLU & GÜLBAHAR, 2014) por ser uma das principais linguagens visuais atuais e já possuir diversos usuário que fazem uso dessa plataforma de desenvolvimento. O Reuse Blocks faz uso de uma interface e mecânica bem parecida com o Scratch, utilizando programação em blocos. No entanto, o Scratch foi desenvolvido com o intuito de ensinar programação para usuário iniciantes, o jogo desenvolvido nesse projeto foi criado com o intuito de ensinar reutilização por meio de componentes de software e ser utilizado por alunos de graduação.
A mecânica desse jogo foi escolhida para dar mais experiência prática para o usuário e, com isso, todas as características que foram implementadas foram baseadas em características, como: desafio, pontuação, níveis, feedback constante,gráficos estimulantes, cenário real, simulação, dependência entre os conteúdos e o uso de recompensas. As características de simulação e cenário foram inseridas pensando que o usuário estará produzindo um código real baseado em um algoritmo real, simulando uma IDE visual.
Nesse jogo, o usuário deve criar os componentes que são requisitados em cada fase com base nos componentes / funções que são previamente disponibilizados pelo jogo, ou a partir de componentes que foram criados em fases anteriores. No final de cada fase, o componente criado pelo jogador é avaliado com base nas métricas que validam a qualidade de componentes de software, e a partir dos resultados, uma pontuação é gerada para o jogador, verificando assim o nível de reutilização do componente criado. A pontuação final é dada através da soma das pontuações de cada uma das métricas, onde a métrica M1 pode alcançar até quatro
pontos, a M2 três pontos, a M3 três pontos e a M4 pode somar um ponto extra.
Métricas utilizadas no jogo Reuse Blocks:
O jogo conta ainda com o auxílio de dois sistemas de feedback, sendo o primeiro provido pela apresentação da pontuação para jogador e um segundo para auxiliar o jogador em tempo real, onde a cada novo bloco que fosse concatenado no código já produzido, o jogo executa uma pré-avaliação desse código para avaliar a sintaxe e verificar a possível futura ação do jogador. Por exemplo, caso o jogador insira um bloco while, o jogo irá avaliar ocomando e recomendar que ele insira uma condição de parada nesse while e quando essa condição for preenchida, o jogo irá recomendar para que o while seja finalizado com uma chave, dando dicas sobre o próximo passo que deve ser executado pelo aluno.
O jogo foi construído com quatro fases e, por se tratar de um jogo a ser utilizado por pessoas iniciantes em programação, as fases construídas são algoritmos que não possuem uma complexidade alta, podendo ser resolvidas com poucas linhas de código. A Tabela a seguir descreve cada uma das fases do jogo. Uma imagem com uma possível solução para cada uma das fases será apresentada mais adiante.
Fases do jogo Reuse Blocks:
Imagem do jogo Reuse Blocks: