Skip to content

This is a university project for learning assembly language.

Notifications You must be signed in to change notification settings

angelobguido/TetrisGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TetrisGame

This is a university project for learning assembly language.

Objetivo: O objetivo deste projeto foi desenvolver um ambiente de desenvolvimento de códigos mais complexos em Assembly, utilizando de ferramentas como Makefile e o preprocessador de C, possibilitando a criação de um projeto com múltiplos arquivos.

Dependencias: Para o funcionamento do jogo é nescessário ter o Processador ICMC(https://github.com/simoesusp/Processador-ICMC) Caso todos os passos foram seguidos corretamente, os arquivos "montador" e "sim" serão criados.

Execução: É nescessário colocar os executáveis "montador" e "sim" dentro da raíz do projeto. Após tendo feito isso, basta executar o comando "make" no terminal. Assim o programa deve rodar normalmente.

Funcionamento: O jogo como um todo é rodado dentro do arquivo "main.asm". Neste são incluidos os códigos nescessários para o desenvolvimento do Tetris. Resumidamente, no arquivo main, temos a inclusão do arquivo "game_loop.asm", que é responsável por atualizar o estado do jogo e os gráficos dentro de um loop infinito. Desta forma, em cada iteração, o player tem a possibilidade de escolher uma ação, como ir para direita, ir para esquerda, ou rotacionar para o sentido horário, apertando respectivamente "d", "a" e "w". Após isso o jogo checa colisões com as paredes e depois move a peça atual para baixo. Como o Tetris ainda é incompleto, ao chegar no chão do jogo, a peça volta para o início com sua próxima forma.

Coisas úteis: Como esse projeto foi focado em desenvolver um ambiente bom para criação de projetos em Assembly, foi adotado uma série de padrões, como por exemplo, toda função criada deve possuir um comentário especificando o que ela faz e possíveis argumentos e retornos que ela possui. Além disso, tambem foram criados testes únitários simples para testar códigos específicos sem a nescessidade de mudar o código principal, para isso basta acessar a pasta "tests" e executar o comando make. O comando make ira executar o teste atual, para modificar qual é o teste que é preciso executar no momento, basta entrar dentro do arquivo Makefile dentro de "tests" e modificar o nome do arquivo desejado .asm na primeira variável, "CURRENT_TEST_ASM_FILE".

Link do vídeo de explicação: https://drive.google.com/file/d/1COmUYb05EI8eMb87py0zZo8dQ_C8ZmNp/view?usp=share_link

About

This is a university project for learning assembly language.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published