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
Tools untuk cek nomor rekening, terhadap penipuan yang sudah terjadi!

No Rekening Checker Selalu waspada terhadap penipuan! Sebelum anda transfer sejumlah uang alangkah baiknya untuk cek terlebih dahulu, apakah norek itu

Hanif Ahmad Syauqi 8 Dec 25, 2022
Wakatime Response In javascript and python

Project Title Wakatime Response In javascript and python Description just for refrence Getting Started Dependencies For Python: requests json For Java

Gjenius20 1 Dec 31, 2021
Telegram bot to extract text from image

OCR Bot @Image_To_Text_OCR_Bot A star ⭐ from you means a lot to us! Telegram bot to extract text from image Usage Deploy to Heroku Tap on above button

Stark Bots 25 Nov 24, 2022
Renjith Mangal 10 Oct 28, 2022
This project is based on discord.py and is meant to be a 'Quick Start Bot' to cut down on the time it takes to write complex discord bots.

This project is based on discord.py and is meant to be a 'Quick Start Bot' to cut down on the time it takes to write complex discord bots.

Alec Ibarra 1 Mar 03, 2022
A Telegram Music Bot written in Python using Pyrogram and Py-Tgcalls

A Telegram Music Bot written in Python using Pyrogram and Py-Tgcalls. This is Also The Source Code of The UserBot Which is Playing Music in @S1-BOTS Support Group ❤️

SAF ONE 224 Dec 28, 2022
0-1 knapsack with an additional constraint of maximum number of items used

extended_knapsack 0-1 knapsack with an additional constraint of maximum number of items used. Usage pip3 install extended_knapsack from extended_knaps

Lion Ralfs 1 Jan 06, 2022
Python Bot that attends classes, answers polls, and then again waits for classes to start.

LPU_myclass_Bot LPU_myclass_Bot is a Python bot that waits for class to start, attends class, answers polls, and then again waits for another class to

Saurabh Kumar 6 Apr 07, 2022
Automation that uses Github Actions, Google Drive API, YouTube Data API and youtube-dl together to feed BackJam app with new music

Automation that uses Github Actions, Google Drive API, YouTube Data API and youtube-dl together to feed BackJam app with new music

Antônio Oliveira 1 Nov 21, 2021
Schedule Twitter updates with easy

coo: schedule Twitter updates with easy Coo is an easy to use Python library for scheduling Twitter updates. To use it, you need to first apply for a

wilfredinni 46 Nov 03, 2022
Verify your Accounts by Tempphone using this Discordbot

Verify your Accounts by Tempphone using this Discordbot 5sim.net is a service, that offer you temp phonenumbers for otp verification. It include a lot

23 Jan 03, 2023
TonplaceApi - Ton.place api wrapper

tonplaceApi ton.place/tonplaceApi Обертка для ton.place Установка pip install ht

Nickolay Samedov 3 Feb 21, 2022
A free, minimal, lightweight, cross-platform, easily expandable Twitch IRC/API bot.

parky's twitch bot A free, minimal, lightweight, cross-platform, easily expandable Twitch IRC/API bot. Features 🔌 Connect to Twitch IRC chat! 🔌 Conn

Andreas Schneider 10 Dec 30, 2022
A simpler way to make forms, surveys, and reaction input using discord.py.

discord-ext-forms An easier way to make forms and surveys in discord.py. This module is a very simple way to ask questions and create complete forms i

thrizzle 16 Nov 06, 2022
Covid19 API. (Currently Scrapes: worldometers)

Covid19-API An opensource Covid19 API (currently uses worldometer only) Output Examples Covid19 Every Country Data Request URL your-ip/api/all Resp

Amresh Prasad Sinha 14 Oct 03, 2022
LOL-banner - A discord bot that bans anybody playing league of legends

LOL-banner A discord bot that bans anybody playing league of legends This bot ha

bsd_witch 46 Dec 17, 2022
A fully decentralized protocol for private transactions FAST snipe BUY token on LUANCH after add LIQUIDITY

TORNADO CASH Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX) ⭐️ A fully decentralized protocol for private and safe transactions ⭐️ AUTO DO

Crypto Trader 2 Jan 06, 2022
It is a temporary project to study discord interactions. You can set permissions conveniently when you invite a particular disk code bot.

Permission Bot 디스코드 내에 있는 message-components 를 연구하기 위하여 제작된 봇입니다. Setup /config/config_example.ini 파일을 /config/config.ini으로 변환합니다. config 파일의 기본 양식은 아

gunyu1019 4 Mar 07, 2022
Salmanul Farisx Bot With Python

Salman_Farisx_Bot How To Deploy Video Subscribe YouTube Channel Added Features Imdb posters for autofilter. Imdb rating for autofilter. Custom caption

1 Dec 23, 2021
Google Sheets Python API v4

pygsheets - Google Spreadsheets Python API v4 A simple, intuitive library for google sheets which gets your work done. Features: Open, create, delete

Nithin Murali 1.4k Jan 08, 2023