Projeto de estudantes do primeiro período do CIn - UFPE voltado para a criação de um sistema interativo no fechamento da disciplina IF669 - Introdução a Programação.

Overview

Projeto Game: Dona da Lua

Banner Dono da Lua


Alunos:

  • Beatriz Férre
  • Clara Kenderessy
  • Matheus Silva
  • Rafael Baltar
  • Roseane Oliveira
  • Samuel Marsaro

Sinopse

O Cebolinha aprontou de novo! Dessa vez, o mestre dos planos infalíveis roubou a máquina de clonagem do Franjinha em uma tentativa desesperada de se tornar o dono da rua... Mas a Mônica não vai deixar barato! Com ajuda do Franjinha, nossa golducha favorita clonou seu coelhinho Sansão e fará de tudo para impedir o Cebolinha de roubar seu título. Ande pelo mapa, pegue os power-ups e atire nos Cebolinhas antes que eles alcancem a lua para manter a Mônica em seu pedestal!


Como iniciar o Game

Caso for seja primeira vez iniciando o projeto, faça um git clone e siga os seguintes passos:

  • Abra o terminal e vá para a pasta deste projeto
  • Crie ou inicie sua python venv com os pacotes do requirements.txt instalado
  • Insira python run.py ou python -m Game para iniciar o jogo

OS suportado: Windows


Documentação

Estruturação de Repositório:
Fizemos uma divisão em branches para cada feature, hotfix, bugfix, ou release que fosse adicionada, mantendo a branch main protegida de git push sem revisões dos outros integrantes. O repositório também conta com uma pasta .github que contém um template para a abertura de pull request para incentivar que o integrante escreva o que ele alterou, adicionou ou removeu em seus commits.

Estruturação de Código:
Dono da Lua é um jogo essencialmente orientado a objetos, pois para apressar o desenvolvimento de todos montandos o que chamamos de GameLoop class que implementa todas as fazes do Game Loop descritas na documentação oficial do Pygame. Desse modo, começamos a pensar em funcionalidades que iam ser componentes, ou seja, outras classes de objetos que iam ser encaixadas no GameLoop.

Estruturação de Pastas e arquivos:
o arquivo "default" de geração do jogo é o main.py e pastas com os componentes a serem incrementados pelas features:

  • Components:
    • spawn.py : organização em classe da geração de inimigos (Cebolinhas) e sua formatação básica para inserção no loop.
    • gamester.py : organização em classe para geração do herói (Mônica, user-guided), suas mecânicas com o sansão, e formatação básica para inclusão no loop
    • powerup.py : implementação do mecanismo de coleta dos buffs de vida, velocidade e debuff
    • background.py : geração do cenário, transformação da imagem e estrutura básica do display
  • Assets:
    • imagens usadas como sprite e mídia
  • Sounds:
    • arquivos de BGM do jogo

Ferramentas & Bibliotecas:

  • Bibliotecas:
    • pygame : usado pra importar configurações próprias de jogo
  • Módulos Nativos do Python:
    • sys : usado pra oportunizar o exit
    • random : usada pra spawnar buffs em intervalos aleatórios e com efeitos distintos

Divisão básica do trabalho:

  • Mecânicas da Mônica e dos tiros: Samuel, Clara
  • Integração de códigos: Matheus
  • Sistema de coleta de buffs: Rafael e Roseane
  • Sistema de spawning e mecânicas de buffs: Beatriz
  • Sistema de spawning e mecânicas de Cebolinha: Roseane
  • Arte do background e implementação de sprites: Clara e Matheus
  • Slides: Clara
  • Relatório: Beatriz e Matheus

Conceitos apresentados na disciplina que foram aplicados:

  • Listas: geração de Cebolinhas no spawn.py, geração de Sansão no gamester.py
  • Tuplas: identificação de coordenadas para implementação de coleta no powerup.py
  • Orientação a Objetos: estruturação completa dos componentes do jogo (presente em todos os subcódigos)
  • Condicionais: essencial na colisão dos elementos e regras do jogo
  • Laços: o jogo ocorre dentro de um while True:

Desafios & Lições:
Desafios:

  • Lidar com divergências de código e programação em paralelo;
  • Estudar P.O.O on-demand;
  • Implementar um módulo novo (pygame);
  • Aprender a utilizar a ferramenta Git e GitHub.

Lições:

  • Adaptação ao ritmo on-demand de aprendizagem e implementação;
  • Conhecimento de P.O.O adquirido;
  • Modularizar é sempre melhor!

made with <\> and <3 by Ratos do CIn


Comments
  • Release/v1.0.5 beta

    Release/v1.0.5 beta

    What I did

    • Fix gameover sound in loop
    • Update README.md
    • Rename some files
      • spawn.py <- mechanics.py
      • gamester.py <- monica.py

    Foi ótimo colaborar com vocês :D Trabalho pronto para entrega feito com </> and <3  


    Time spent: 6h

    opened by dejardim 0
  • (feature): menu and game over

    (feature): menu and game over

    What I did

    • Created menu screen
    • Created game over screen

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal:

      1. git checkout main
      2. git pull
      3. git checkout feature/menu_gameover
      4. git pull origin feature/menu_gameover `
    opened by claraabk 0
  • (feature): release_game_beta

    (feature): release_game_beta

    What I did

    • Upload 3 png files for buff images
    • Upload 8 songs file for background game song and sound effects
    • Introduces mechanics.py the old cebolinha.py
      • modularized cebolinha
      • method load_rules of game
        • draw cebolinhas
        • collision sound effects
        • remove the return of old obstacle_movement function (the new method load_rules)
    • According to PEP8 in most files
    • Integrates all the code for the v1.0.0-beta release
      • collect buffs and debuff
      • remove bug of collision of buffs
      • adjusts the draw function of collected score and buff count sources

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal: a. git pull b. git checkout develop c. git pull origin develop

    3. In VScode open terminal a. open your python venv b. python -m Game or python run.py

    4. Things to do during the code:

      • Assess whether the new structure is suitable for the project.
      • Make sure the code is understandable and has low complexity.
    5. Read the changed files section on GitHub

    6. Test the things that you think are worth testing, even the ones that are not in this description

     


    Time spent: 12h52min

    opened by dejardim 0
  • first draft for readme

    first draft for readme

    What I did

    • Thing I’ve done
    • Thing I’ve done
      • Detailing
      • Detailing

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal:

      1. git checkout develop
      2. git pull
      3. git checkout <branch name>
      4. git pull origin <branch name>
      5. yarn install
      6. code .
      7. sudo docker-compose up
      8. yarn typeorm migration:run
      9. yarn start
    3. In your browser go to http://localhost:3000/

    4. In VScode open <relative path>

    5. Things to do during the code:

      • Open insomnia and postbird to test the requisitions needed
    6. Read the changed files section on GitHub

    7. Test the things that you think are worth testing, even the ones that are not in this description

     


    Time spent: <see your time spent on https://wakatime.com/dashboard >

    opened by biaferre 0
  • (feature) add buff r

    (feature) add buff r

    What I did

    • Thing I’ve done
    • Thing I’ve done
      • Detailing
      • Detailing

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal:

      1. git checkout develop
      2. git pull
      3. git checkout <branch name>
      4. git pull origin <branch name>
      5. yarn install
      6. code .
      7. sudo docker-compose up
      8. yarn typeorm migration:run
      9. yarn start
    3. In your browser go to http://localhost:3000/

    4. In VScode open <relative path>

    5. Things to do during the code:

      • Open insomnia and postbird to test the requisitions needed
    6. Read the changed files section on GitHub

    7. Test the things that you think are worth testing, even the ones that are not in this description

     


    Time spent: <see your time spent on https://wakatime.com/dashboard >

    opened by rosean3 0
  • created scoring system for life, hit & buffs

    created scoring system for life, hit & buffs

    What I did

    • Life reduction
    • Hit count
    • Buff count

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal:

      1. git checkout develop
      2. git pull
      3. git checkout <branch name>
      4. git pull origin <branch name>
      5. yarn install
      6. code .
      7. sudo docker-compose up
      8. yarn typeorm migration:run
      9. yarn start
    3. In your browser go to http://localhost:3000/

    4. In VScode open <relative path>

    5. Things to do during the code:

      • Open insomnia and postbird to test the requisitions needed
    6. Read the changed files section on GitHub

    7. Test the things that you think are worth testing, even the ones that are not in this description

     


    Time spent: <see your time spent on https://wakatime.com/dashboard >

    opened by biaferre 0
  • (hotfix):changed background and main sprite

    (hotfix):changed background and main sprite

    What I did

    • Changed background to definitive background
    • Changed the hero sprite to monica sprite

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal:

      1. git checkout develop
      2. git pull
      3. git checkout hotfix/back_and_sprite
      4. git pull origin hotfix/back_and_sprite
    3. In VScode open background.py and monica.py

    4. Things to do during the code:

      • Open insomnia and postbird to test the requisitions needed
    5. Read the changed files section on GitHub

    6. Test if monica is flipping and if the background is ok

     


    Time spent: <see your time spent on https://wakatime.com/dashboard >

    opened by claraabk 0
  • changed buff duration from delay to a timer

    changed buff duration from delay to a timer

    What I did

    • Added a timer to regulate the duration of each buff
      • Monica has 3 seconds to collect it before it goes away
      • includes disappearance in event queue

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal:

      1. git checkout develop
      2. git pull
      3. git checkout <branch name>
      4. git pull origin <branch name>
      5. yarn install
      6. code .
      7. sudo docker-compose up
      8. yarn typeorm migration:run
      9. yarn start
    3. In your browser go to http://localhost:3000/

    4. In VScode open <relative path>

    5. Things to do during the code:

      • Open insomnia and postbird to test the requisitions needed
    6. Read the changed files section on GitHub

    7. Test the things that you think are worth testing, even the ones that are not in this description

     


    Time spent: 40'

    opened by biaferre 0
  • Collect function

    Collect function

    What I did:

    • Created function to collect things using the colliderect method, using the Rect method to constantly check position.
    • The collectible is removed from the screen by changing its x and y positions. Its working, but its not the right way to do it. Need to implement a method for that in the buff class later.
    • Added a common count. Need to integrate with buffs so it counts each different one.
    opened by baltar05 0
  • (hotfix):changed gridsize

    (hotfix):changed gridsize

    What I did

    • Changed tilesize on settings to 24 and width to 16

    How to test

    1. Open the terminal and go to the folder of this project

    2. In terminal:

      1. git checkout main
      2. git pull
      3. git checkout hotfix/gridsize
      4. git pull origin gridsize
    3. In VScode open Game - Settings

    4. Things to do during the code:

      • Open insomnia and postbird to test the requisitions needed
    5. Read the changed files section on GitHub

    6. In your venv, run the game and check grid size

    Time spent: <see your time spent on https://wakatime.com/dashboard >

    opened by claraabk 0
  • (feature): add character: cebolinha

    (feature): add character: cebolinha

    Adicionei o Cebolinha. Tá com uns glitches ainda.

    What I did

    • Tentei adicionar comentário pra tudo
    • Eu usei o meu background pra construir, então também tem comentário, mídia e código dele
    • Os comentários com letra maiúscula são sobre o cebolinha
    • Tá dando um glitchzinho quando os cebolinhas vão desaparecendo
    • Os comentários das minhas dúvidas e incertezas estão nesse formato: #?dúvida?
    opened by rosean3 0
Owner
Maria Clara Kenderessy
c.s student at UFPE
Maria Clara Kenderessy
"Nesse projeto criei uma automação para abrir as tarefas no Jira em massa pegando de uma determinada fila do Zendesk."

automacao-Zendesk "Nesse projeto criei uma automação para abrir as tarefas no Jira em massa pegando de uma determinada fila do Zendesk." en-us "In thi

tokoyamy 1 Dec 20, 2021
Este programa tem como objetivo o cadastro dos usuários. Assim, caso a autenticação seja feita, permitir que o usuário entre em determinado sistema ou programa.

LoginPy Este programa tem como objetivo o cadastro dos usuários. Assim, caso a autenticação seja feita, permitir que o usuário entre em determinado si

Jonas Carvalho 4 Dec 23, 2021
Bot para automatizacao de registros no Vacivida para o COVID19

VACIBOT v.06 - Bot para automatizacao de registros no Vacivida para o COVID19 by Victor Fragoso - Prefeitura Municipal de Santo André Email: vfragoso@

Prefeitura de Santo André 22 Sep 19, 2022
Um bot para contar quantas vezes o meu amigo troca de pfp/nick/tag essas coisas ae pq aquele mlk n para quieto

EkiBot Um bot que tem apenas as suas funções de audit log com as PFP's (avatares) dos usuários Pode ser usado para um usuário em específico, ou até me

Samuel 3 Aug 11, 2021
Projeto Informações Conta do Instagram - Instagram Account Information Project

Projeto Informações Conta do Instagram - Instagram Account Information Project Descrição - Description Projeto que exibe informações de perfil, lista

Thiago Souza 1 Dec 2, 2021
Projeto do segundo módulo da Resilia

@ Projeto Resilia : Módulo 2 Vamos jogar Forca ! O jogo da forca é um jogo em que o jogador tem que acertar qual é a palavra proposta, tendo como dica

Mateus Sartorio 2 Feb 24, 2022
Projeto com o objetivo de aprender o funcionamento de Consumo de APIs.

Consumindo API SuperHero Projeto com o objetivo de aprender o funcionamento de Consumo de APIs.

Deivisson Henrique 1 Dec 30, 2021
Desafio de projeto sobre Git/Github

Maçã ou Laranja? ?? Desafio Projeto Dio para Git/Github ?? Para esse primeiro repositório, decidir adicionar o primeiro algoritmo de inteligência arti

José Filipe 2 Oct 23, 2022
Script que envia e-mails de denúncia para desativar número de WhatsApp.

SpamReport (Alpha) Este script foi feito apenas para uso educacional, não me responsabilizo por qualquer uso indevido. Version: 1.0 Alpha Ative essa o

Kiny-Kiny 83 Dec 20, 2022
Estudo de como criar uma api para o gerenciamento de livros usando a django restframework

Boa parte do projeto foi beaseado nesse vídeo e nesse artigo. Se assim como eu, você entrou agora no mundo BackEnd, recomendo fortemente tais materiai

Michel Ledig 14 Jun 28, 2022
um simples script para localizar IP

um simples script para localizar IP pkg install git (apt-get install git) pkg install python (apt-get install python) git clone https://github.com/byd

bydeathlxncer 4 Nov 29, 2021
Primeira etapa do processo seletivo para a bolsa de migração de conteúdo de Design de Software.

- Este processo já foi concluído. Obrigado pelo seu interesse! Processo Seletivo para a bolsa de migração de conteúdo de Design de Software Primeirame

Toshi Kurauchi 1 Feb 21, 2022
Trabalho N1 para a materia Tecnicas de Progamação da Anhembi Morumbi

Projeto da Anhembi Morumbi - Tecnicas de Programação. RPG de Console (CMD) Trabalho proposto pelo professor André Santana, na materia Tecnicas de Prog

Leonardo Silva M de Barros 3 Sep 12, 2021
Gera um PDF, logo depois de você responder um questionário simples, e envia para o e-mail que você informar.

PDF generator and send it for your email Criador: Francisco Robson de O. Dutra Filho Repositório criado no dia 18/09/2021 Instagram: @robsondutra_ Sob

null 8 Nov 22, 2021
Criando Lambda Functions para Ingerir Dados de APIs com AWS CDK

LIVE001 - AWS Lambda para Ingerir Dados de APIs Fazer o deploy de uma função lambda com infraestrutura como código Lambda vai numa API externa e extra

Andre Sionek 12 Nov 20, 2022
Um bot simples para seguir as pessoas

Um bot simples para seguir pessoas no instagram, criado apeanas para testes. Utilizando o framework "Selenium", criei um bot para entrar em uma conta

Mobben 1 Nov 5, 2021
Herramienta para transferir eventos de Sucuri WAF hacia Azure Blob Storage.

Transfiere eventos de Sucuri hacia Azure Blob Storage Script para transferir eventos del Sucuri Web Application Firewall (WAF) hacia Azure Blob Storag

CSIRT-RD 1 Dec 22, 2021
Herramienta para transferir eventos de Sucuri WAF hacia Azure Monitor Log Analytics.

Transfiere eventos de Sucuri hacia Azure LogAnalytics Script para transferir eventos del Sucuri Web Application Firewall (WAF) hacia Azure LogAnalytic

CSIRT-RD 1 Dec 22, 2021
Herramienta para transferir eventos de Sucuri WAF hacia Azure Data Tables.

Transfiere eventos de Sucuri hacia Azure Data Tables Script para transferir eventos del Sucuri Web Application Firewall (WAF) hacia Azure Data Tables,

CSIRT-RD 1 Dec 22, 2021