Skip to content
This repository has been archived by the owner on Apr 16, 2018. It is now read-only.

Latest commit

 

History

History
82 lines (51 loc) · 6.16 KB

README.md

File metadata and controls

82 lines (51 loc) · 6.16 KB

GitHub contributors GitHub tag Codacy grade Github Downloads All Releases

Cara crachá

Repositório do Projeto 3 da disciplina Estrutura de Dados.

O jogo desenvolvido para o terceiro projeto de Estruturas de Dados foi o jogo “Cara-Cracha”. Neste jogo, o jogador vive na pele a experiência de trabalhar como monitor em um restaurante universitário (RU). Sua função é verificar se uma pessoa é quem diz ser, olhando para seu rosto e sua suposta carteirinha de estudante.

Durante o jogo, o jogador deve administrar seu tempo e administrar as pessoas que ficam aparecendo na entrada do refeitório. O jogo tem inicio às 11:00 e termina às 14:00, reabrindo das 17:00 às 19:00 simulando o horário de funcionamento padrão do refeitório. Após o início do expediente, uma fila de pessoas começa se formar na frente da catraca. A missão do jogador é ser rápido, para evitar o acúmulo de pessoas, e ser observador, pois pessoas com carteirinhas erradas não podem entrar. Ao autorizar a entrada de alguém com carteirinha irregular, o jogador é penalizado. Ao alcançar o fim do expediente, com uma boa classificação (baseada na quantidade de pessoas corretas e incorretas), o jogador vence.

Uma pessoa é gerada aleatoriamente e possui diversas características que as identifica, além de ter sua própria carteirinha de estudante. Claramente, a carteirinha deve conter determinadas informações e características sobre a pessoa para que seja considerada válida. O jogador deve ser rápido e observar detalhes para evitar cometer erros durante seu dia de trabalho. O que torna o jogo realmente desafiador é o fato de uma pessoa estar de um jeito na foto da carteirinha, mas depois ter pintado o cabelo, comprado um óculos, deixado o bigode crescer, entre outras alterações cotidianas, o que o torna ligeiramente diferente da foto, mas ainda é ele! Então tenha muito cuidado!

Estruturas de Dados do jogo:

  • Uma fila de personagens. Gerada no início do jogo e preenchida conforme novos personagens ingressam na fila;
  • Uma fila de posições. Cada pessoa possui uma posição, a qual é definida a partir de uma lista ordenada de coordenadas que representam cada posição na fila.
  • Uma lista de camadas para a construção do cenário;

Instalação

Utilizamos a linguagem de programação C++ na versão 11 durante a codificação do jogo. Para compilá-lo, basta executar o comando make na pasta ./src. O arquivo makefile está configurado para colocar o executável dentro da pasta ./bin, o qual pode ser lançado utilizando o comando make run. Caso queira otimizar as etapas, ao executar o comando make full você estará compilando e executando o jogo.

O projeto foi compilado e testado utilizando os seguintes SOs:

  • Windows 8.1 64-bit

  • Linux Xubuntu 64-bit

Para demais sistemas, fica a cargo do utilizador verificar a compatibilidade. Ocorrendo algum problema, comunique-nos criando uma nova questão. Caso obtenha sucesso na utilização em demais sistemas, sinta-se à vontade para colaborar com a presente documentação, incrementando-o à lista anterior.

Descrição da Implementação

O jogo foi desenvolvido seguindo as configurações do tipo abstrato de dado (TAD) Fila circular, com encadeamento duplo e com nó header. Tem-se então que cada elemento é armazenado em um nó com três atributos, sendo eles:

  • Value: armazena o elemento em si;
  • Next: ponteiro que define o nó do próximo elemento;
  • Previous: ponteiro que define o nó do elemento anterior.

Pilha vazia

Figura 1: Fila vazia. Nó header, com os campos value, previous e next.

Pilha com três elementos

Figura 2: Fila com 3 elementos, nó header e encadeamento duplo. Na figura acima C é o último elemento.

Telas do Jogo

Tela inicial

Figura 3: Tela inicial do jogo

Tela do jogo pausado

Figura 4: Tela com o jogo pausado

Tela do jogo durante uma partida

Figura 5: Tela do jogo durante uma partida

Tela final 0

Figura 6: Tela final 0 do jogo

Tela final 1

Figura 7: Tela final 1 do jogo

Tela final 2

Figura 8: Tela final 2 do jogo

Autores

Créditos

  • Alisson Nunes - Lógica do jogo e programação.
  • Gabriel Alves - Estrutura de dados.
  • Matheus Bortoleto - Detalhes do jogo.
  • Rafael Sales - Documentação.

Licença

O código a seguir foi criado para propósitos educacionais e seu reuso é aberto a qualquer um que o queira utilizar, com permissões de cópia, criação, distribuição e remoção de partes ou totalidade dele, desde que se deem os devidos créditos aos autores. Para mais detalhes, acesse o documento completo.