Skip to content

naylane/Lost-in-Space

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

LostInSpace

Projeto da disciplina TEC 499 - Sistemas Digitais - TP04 | Grupo 02

Sumário

Visão Geral do Projeto

O objetivo central do Problema 3 foi desenvolver um jogo multiplayer em C, utilizando a biblioteca desenvolvida no Problema 2. A descrição completa do problema juntamente com os requisitos pode ser acessada em Descrição do problema.pdf.

A ideia do jogo foi inspirada em um mangá conhecido como: Astra Lost in Space. Dessa forma, temos um labirinto e dois jogadores representados por naves alienígenas O objetivo é que os jogadores andem pelo labirinto a procura desse buraco negro, ganha quem encontrar o buraco negro primeiro em menos tempo, porém no meio do caminho podem aparecer algumas surpresas…

Sobre o Lost in Space

Sinopse

Vocês são dois aliens perdidos pelo espaço que tem o objetivo de voltar para casa através de um buraco negro, porém o buraco negro suporta somente uma nave que levará ao planeta natal… Dessa forma, vocês estão perdidos no espaço a proucura do buraco negro que os levará para casa, porém somente um irá voltar!

Características

Elemento Funcionalidade
Nave 1 Nave a ser movimentada com o acelerômetro.
Nave 2 Nave a ser movimentada com o mouse.
Buraco negro Ponto final do jogo.
Estrela Os elementos passivos que vão aparecer pelo labirinto, caso toque em um jogador, ele volta para o início.
Labirinto Labirinto que se autogera, assim, toda partida temos um labirinto diferente.
Controle do jogo

Controle do jogo

Uso da GraphLib

Colisão

Mouse

Comunicacao Mouse

Comunicação com o Mouse

Labirinto randômico

Com intuito de tornar a jogo mais desafiador e diverso, a geração do labirinto foi implementada de forma randômica. Para tornar isso possível, utilizamos o Algorimo Depth First Search (DFS) e a ideia partiu do artigo de Rômulo C. Menezes Jr [3].

Primeiro o labirinto é inicializado com todas as posições sinalizadas como parede ('#'). Em seguida, é chamada a função recursiva geraLabirinto(int x, int y).

O algoritmo funciona marcando um ponto inicial, explorando recursivamente caminhos adjacentes aleatórios. Quando não há mais caminhos válidos, o algoritmo retorna ao estado anterior para continuar a exploração.

Fluxograma da geração do labirinto

Fluxograma da geração do labirinto

Tecnologias e Ferramentas utilizadas

  • Hardwares:
    • Kit de Desenvolvimento DE1-SoC
    • Monitor
    • Mouse
  • Linguagens: Assembly e C
  • Ambiente de Desenvolvimento: Visual Studio Code
  • Compilador: GCC
  • Controle de Versão: Git
  • Ferramenta de Sistema: Terminal Linux (Ubuntu)

Configurações de Ambiente e Execução

Para ter acesso ao projeto, clone o repositório disponível na plataforma GitHub utilizando o seguinte comando no terminal Linux:

git clone https:

Após clonar o repositório, conecte-se à placa via SSH utilizando o seu respectivo IP. Por exemplo, se o IP for 10.0.0.120, use o seguinte comando:

ssh aluno@10.0.0.120

Em seguida, transfira a pasta clonada do seu computador para o sistema de arquivos da placa:

mv Lost-in-Space/[caminho do destino]

Para compilar e executar o projeto desenvolvido, navegue até o diretório onde está o repositório e execute o comando:

make

O comando make gerará o arquivo de compilação e o executará. Se a operação for bem-sucedida, a tela inicial do Joguinho deverá aparecer no monitor ao qual a placa está conectada.
⚠️ Observação: para seguir esse passo a passo será necessário saber a senha do usuário aluno.

Desenvolvedoras


Brenda Araújo
👨‍💻

Naylane Ribeiro
👨‍💻

Sara Souza
👨‍💻

Referências

About

Jogo multiplayer que utiliza a GraphLib, biblioteca autoral feita em Assembly.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 94.3%
  • Assembly 5.7%