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


Owner
Maria Clara Kenderessy
c.s student at UFPE
Maria Clara Kenderessy
Trust-minimized Bitcoin wallet

coldcore Trust-minimized, airgapped Bitcoin management This is experimental software. Wait for a formal release before use with real funds. A trust-mi

James O'Beirne 121 Jan 01, 2023
Gdrive-python: A wrapping module in python of gdrive

gdrive-python gdrive-python is a wrapping module in python of gdrive made by @pr

Vittorio Pippi 3 Feb 19, 2022
Bancos de Dados Relacionais (SQL) na AWS com Amazon RDS

Bancos de Dados Relacionais (SQL) na AWS com Amazon RDS Repositório para o Live Coding DIO do dia 24/11/2021 Serviços utilizados Amazon RDS AWS Lambda

Cassiano Ricardo de Oliveira Peres 4 Jul 30, 2022
A program that automates the boring parts of completing the Daily accounting spreadsheet at Taos Ski Valley

TSV_Daily_App A program that automates the boring parts of completing the Daily accounting spreadsheet at my old job. To see how it works you will nee

Devin Beck 2 Jan 01, 2022
提供火币网交易接口API最简封装,提供现货买入、卖出、huobi币安查询账户余额等接口,数字货币,虚拟货币,BTC量化交易框架,自动交易,轻量便携,不用安装,即开即用

火币网交易接口的最简封装(只管用,不用再关注细节) 提供火币网交易接口的python封装,提供买入、卖出、查询账户余额等接口 接口说明 order_value() 进行买入操作,参数为买入的币和买入的金额 买入返回的详情数据: {'单号': '272229546125038', '成交数量': 0.

dev 95 Sep 24, 2021
This is Telegram Files Store Bot by @AbirHasan2005

PyroFilesStoreBot This is Telegram Parmanent Files Store Bot by @AbirHasan2005. Language: Python3 Library: Pyrogram Features: In PM Just Forward or Se

Abir Hasan 168 Dec 19, 2022
Maintained wavelink fork for pycord

Pycord.Wavelink Wavelink is robust and powerful Lavalink wrapper for Pycord! Wavelink features a fully asynchronous API that's intuitive and easy to u

Pycord Development 23 Dec 11, 2022
A telegram media to gofile bot

GoFile-Bot A telegram media to gofile bot Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License - https://github.com/Fay

Fayas Noushad 37 Nov 14, 2022
The Most advanced and User-Friendly Google Collab NoteBook to download Torrent directly to Google Drive with File or Magnet Link support and with added protection of Timeout Preventer.

Torrent To Google Drive (UI Added! 😊 ) A Simple and User-Friendly Google Collab Notebook with UI to download Torrent to Google Drive using (.Torrent)

Dr.Caduceus 33 Aug 16, 2022
Send automated wishes to your contacts at scheduled time through WhatsApp. Written for Raspberry pi.

Whatsapp Automated Wishes Helps to send automated wishes to your contacts in Whatsapp at scheduled time using pywhatkit . Written for Raspberry pi. Wi

Uthayamurthy 2 Dec 13, 2022
Injector/automatic translator (using deepL API) for Tsukihime Remake

deepLuna Extractor/Editor/Translator/Injector for Tsukihime Remake About deepLuna, from "deepL", the machine translation service, and "Luna", the name

30 Dec 15, 2022
A minimal open source mtg-like tcg game made in python that can be played on a terminal emulator using a keyboard.

TCG-TERM Project state: 🔧 🚧 🚧 🚧 Incomplete, In development 🚧 🚧 🚧 👷 (Keep in mind that at the moment, This project is currently undone, and wil

Amos 3 Aug 29, 2021
Spotify Web API client for Python 3

Welcome to the GitHub repository of Tekore! We provide a client for the Spotify Web API for Python, complete with all available endpoints and authenti

Felix Hildén 186 Dec 22, 2022
Source code of BobuxAdmin bot from Bobux Bot Development server.

BobuxAdmin Source code of BobuxAdmin bot from Bobux Bot Development server. The bot is written with usage of disnake and SQLite database. Functionalit

Bobux Bot Developers 3 Dec 29, 2022
This Server Cloner can clone the server you want with all the perms of roles in every particular channel.

Server-Cloner-with-perms 🚀 This Server Cloner can clone the server you want with all the perms of roles in every particular channel. Features Clone C

Gripz 0 Feb 17, 2022
Companion "receiver" to matrix-appservice-webhooks for [matrix].

Matrix Webhook Receiver Companion "receiver" to matrix-appservice-webhooks for [matrix]. The purpose of this app is to listen for generic webhook mess

Kim Brose 13 Sep 29, 2022
PRAW, an acronym for "Python Reddit API Wrapper", is a python package that allows for simple access to Reddit's API.

PRAW: The Python Reddit API Wrapper PRAW, an acronym for "Python Reddit API Wrapper", is a Python package that allows for simple access to Reddit's AP

Python Reddit API Wrapper Development 3k Dec 29, 2022
Code to help me strengthen my bot army

discord-bot-manager an api to help you manage your other bots auth lazy: using the browser dev tools, capture a post call and view the Authorization h

Riley Snyder 2 Mar 18, 2022
UNLIMITED CALL AND SMS BOMBING PYTHON SCRIPT

cc_sim_crack v.1 An open-source SMS/call bomber for Linux And Termux. Note: Due misusing of cc_sim_crack, several API's died. Don't be afraid if you d

CYBER CRACKER OFFICIAL 3 Jul 05, 2021
A GitHub Follower Bot that is a WIP.

GitHub Follower Bot (WIP) Work In Progress This bot is a WIP. There are still many features I plan to add and code I need to improve (I'm still fairly

Christian Deacon 71 Dec 29, 2022