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
A Telegram bot to index Chinese and Japanese group contents, works with @lilydjwg/luoxu.

luoxu-bot luoxu-bot 是类似于 luoxu-web 的 CJK 友好的 Telegram Bot,依赖于 luoxu 所创建的后端。 测试环境 Python 3.7.9 pip 21.1.2 开发中使用到的 Telethon 需要 Python 3+ 配置 前往 luoxu 根据相

TigerBeanst 10 Nov 18, 2022
StudyLion is a Discord bot that tracks members' study and work time while offering members to view their statistics and use productivity tools such as: To-do lists, Pomodoro timers, reminders, and much more.

StudyLion - Discord Productivity Bot StudyLion is a Discord bot that tracks members' study and work time while offering members the ability to view th

45 Dec 26, 2022
A GitHub Action that automatically reports your Advent of Code progress in a table in your README

Advent README Stars This action adds and maintains a stars report in your README based on your Advent of Code progress. Example Table 2021 Results Day

Kevin Duff 36 Dec 30, 2022
Simple Discord bot for snekbox (sandboxed Python code execution), self-host or use a global instance

snakeboxed Simple Discord bot for snekbox (sandboxed Python code execution), self-host or use a global instance

0 Jun 25, 2022
Telegram Link Shortener Bot (With 20 Shorteners)

Telegram ShortenerBot ShortenerBot: 🇬🇧 Telegram Link Shortener Bot (11 + 9 Shorteners) 🇹🇷 Telegram Link Kısaltıcı Bot (11 + 9 Kısaltıcı) All suppo

Hüzünlü Artemis [HuzunluArtemis] 10 May 24, 2022
Using Streamlit to build a simple UI on top of the OpenSea API

OpenSea API Explorer Using Streamlit to build a simple UI on top of the OpenSea API. 🤝 Contributing Contributions, issues and feature requests are we

Gavin Capriola 1 Jan 04, 2022
Buy early bsc gems with custom gas fee, slippage, amount. Auto approve token after buy

Buy early bsc gems with custom gas fee, slippage, amount. Auto approve token after buy. Sell buyed token with custom gas fee, slippage, amount. And more.

Jesus Crypto 206 May 01, 2022
GitHub Activity Generator - A script that helps you instantly generate a beautiful GitHub Contributions Graph for the last year.

GitHub Activity Generator A script that helps you instantly generate a beautiful GitHub Contributions Graph for the last year. Before 😐 😶 😒 After ?

1 Dec 30, 2021
Console BeautifulDiscord theme manager

BeautifulDiscord theme manager Console script for downloading & managing Discord .css themes via BeautifulDiscord. Setup Simply run # Linux/MacOS pip3

1 Dec 15, 2022
A Telegram Bot to Play Audio in Voice Chats With Youtube and Deezer support. Supports Live streaming from youtube Supports Mega Radio Fm Streamings

Bot To Stream Musics on PyTGcalls with Channel Support. A Telegram Bot to Play Audio in Voice Chats With Supports Live streaming from youtube and Mega

Shamil Habeeb 37 Dec 15, 2022
A Simple Telegram Inline Torrent Search Bot by @infotechIT

Torrent-Search-RoBot A Simple Telegram Inline Torrent Search Bot by @infotechIT. Torrent API Using api.infotech.wtf API Host Bot Deploy to Heroku Clic

InfoTech 0 May 05, 2022
Balsam Python client API & SDK

balsam No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) This Python package is automatically

Darren Govoni 1 Oct 22, 2021
MemeBot - A discord bot that tracks how good people's memes are

MemeBot A discord Meme "Karma" Tracking bot Dependancies Make sure you have pymongo installed and a mongodb cluster setup with two collections. pip in

Uday Sharma 3 Aug 10, 2022
It is a useful project for developers that includes useful tools for Instagram

InstagramIG It is a useful project for developers that includes useful tools for Instagram Installation : pip install InstagramIG Logan Usage from In

Sidra ELEzz 14 Mar 14, 2022
Fetch Flipkart product details including name, price, MRP and Stock details in general as well as specific to a pincode

Fetch Flipkart product details including name, price, MRP and Stock details in general as well as specific to a pincode

Vishal Das 6 Jul 11, 2022
Use GitHub Actions to create a serverless service.

ActionServerless - Use GitHub Actions to create a serverless service ActionServerless is an action to do some computing and then generate a string/JSO

107 Oct 28, 2022
Explorer is a Autonomous (self-hosted) Bittorrent Network Search Engine.

Explorer Explorer is a Autonomous (self-hosted) Bittorrent Network Search Engine. About The Project Screenshots Supported features Number Feature 1 DH

51 Jun 14, 2022
PyFacebook

== PyFacebook == PyFacebook is a Python client library for the Facebook API. Samuel Cormier-Iijima ( Samuel Cormier-Iijima 573 Dec 20, 2022

A slack bot that notifies you when a restaurant is available for orders

Slack Wolt Notifier A Slack bot that notifies you when a Wolt restaurant or venue is available for orders. How does it work? Slack supports bots that

Gil Matok 8 Oct 24, 2022
DongTai API SDK For Python

DongTai-SDK-Python Quick start You need a config file config.json { "DongTai":{ "token":"your token", "url":"http://127.0.0.1:90"

huoxian 50 Nov 24, 2022