Bem Vindo à documentação do Desenvolvimento Ágil PPGI 2020!¶
Desenvolvimento Ágil PPGI 2020¶
Projetos da disciplina de Desenvolvimento Ágil Orientado a Objetos, utilizando a plataforma de programação SuperPython.
Desenvolveremos aplicações reais WEB nos seguintes temas: Tutorial Kwarwp: Um tutorial para aprendizado da linguagem Python através das aventuras de um índio. ArtAntCovid: Um aplicativo de acompanhamento e proteção da população contra a pandemia viral. ActivUFRJ Leve: Um ambiente virtual dedicado ao ensino e pesquisa com uma interface intuitiva. Plataforma SupyGirls: Uma plataforma para desenvolvimento de jogos educacionais em Python. Diversas ferramentas e bibliotecas de desenvolvimento serão usadas como o Pycharm, Jupyter, GitLab, Docker, Notion e outras. A ideia é ir do mais básico ao mais avançado em doze semanas.
Módulos Tutoriais¶
Módulos desenvolvidos para ensinar algum aspecto da programação
Jogo de Tabuleiro Quarto¶
Jogo do Quarto : As classes Pino, Casa e Tabuleiro
Tutorial de Eventos¶
Tutorial : A classe Evento.
Modulos dos Participantes¶
Desenvolvimento das equipes de programação
Projetos das Equipes:
Projeto Alpha¶
Um pequeno labirinto com várias câmaras.
Jogo de Tabuleiro Quarto.¶
Modulo Quarto¶
Jogo de Tabuleiro Quarto.
Code author: Carlo Oliveira <carlo@ufrj.br>
Classes neste módulo:
JogoDoQuarto
Jogo de tabuleiro para dois jogadores.
Pino
Representa um pino que se move de um tabuleiro para outro.
Casa
Representa um case que pode receber um pino no tabueiro.
See also
Note
Este módulo é um tutorial ensinando a programar um jogo de tabuleiro simples.
Classe Pino¶
Módulo Jogo de Tabuleiro Quarto.
-
class
adda.quarto.
Pino
(indice, cor, casa, dx=101, dy=60)[source]¶ Pinos do jogo quarto variando em cor, altura, forma e buraco
Observação: Uma folha sprite é uma imagem contendo vários desenhos com peças que serão usados em um jogo.
Parameters: - indice – O índice do pino na folha sprite (cada imagem tem 8 pinos).
- cor – Nome da imagem sprite com um conjunto de pinos claros ou escuros.
- casa – Casa original onde o pino vai ser colocado.
- dx – o intervalo horizontal em pixels entre duas figuras de pino na folha sprite.
- dy – o intervalo vertical em pixels entre duas figuras de pino na folha sprite.
-
static
pino
(nome)[source]¶ Retorna o pino localizado dado o nome.
Parameters: nome – O nome do pino no dicionário de pinos PINOS. Returns: O objeto pino que tem o nome dado. Return type: Instância da classe Pino.
-
static
pinos
(cor, table)[source]¶ Cria um conjunto de pinos de uma cor e aloca no dado tabuleiro.
Parameters: - table – A tabela contendo um cojunto de casas onde os pinos serão alocados.
- cor – Nome da imagem sprite com um conjunto de pinos claros ou escuros.
Returns: Uma lista de pinos alocados nas casas do tabuleiro dado.
Return type: Lista contendo instâncias da classe Pino.
Classe Casa¶
Módulo Jogo de Tabuleiro Quarto.
-
class
adda.quarto.
Casa
(base, fundo, x, y, dx=0, dy=3, mx=0, my=0, livre=False, t=75)[source]¶ Casa do jogo quarto, podendo ser do tabuleiro central ou adjacentes.
Parameters: - base – A cena em que este tabuleiro vai entrar.
- fundo – A imagem que representa esta casa.
- livre – Indica se a casa está livre ou ocupada quando for criada.
- t – Tamanho (altura e largura do desenho da casa, inicia em um oitavo do tabuleiro.
- x – A posição absoluta horizontal em casas que esta casa vai ser colocada.
- y – A posição absoluta vertical em casas que esta casa vai ser colocada.
- dx – O deslocamento horizontal em casas que esta casa tem em relação à esquerda.
- dy – O deslocamento vertical em casas que esta casa tem em relação ao topo.
- mx – Ajuste fino horizontal em pixels do posicionamento da casa.
- my – Ajuste fino vertical em pixels do posicionamento da casa.
Note
folha sprite: é uma imagem contendo vários desenhos com peças que serão usados em um jogo. dropper: dicionário necessário para definir o comportamento do drop. Cada chave deste dicionário deve ser o nome de um pino passível de ser arrastado para esta casa. Os nomes são do tipo topo0 … topo7 ou lado0 … lado7. A construção {f”{nome}{pino}”: ..} é chamada em Python de dict comprehension, pois gera um dicionário a partir de uma iteração. O termo f”{nome}{pino}” constrói as chaves do dicionário a partir da lista (topo, lado) e dos números de 0 a 7. O termo lambda ev, nome_pino, *_: self.entrar(nome_pino) é uma função anônima que recebe os parametros ev e nome_pino enviados pelo mecanismo interno de arrasto do Elemento. Neste caso, para qualquer pino eu quero que ele entre na casa corrente, por isso o self.entrar(nome_pino) é chamado dentro da função anônima.
Classe Jogo do Quarto¶
Módulo Jogo de Tabuleiro Quarto.
-
class
adda.quarto.
JogoDoQuarto
[source]¶ Bases:
object
Jogo do Quarto - Jogo de Tabuleiro. Quarto é um jogo de tabuleiro para dois jogadores inventado pelo matemático suíço Blaise Müller em 1991.
O jogo é jogado em um tabuleiro 4 × 4. Existem 16 peças únicas para brincar, cada uma das quais é:
- alto ou baixo;
- vermelho ou azul (ou um par diferente de cores, por exemplo, madeira manchada de clara ou escura);
- quadrado ou circular; e
- topo oco ou topo sólido.
Os jogadores se revezam na escolha de uma peça que o outro jogador deve colocar no tabuleiro. Um jogador vence colocando uma peça no tabuleiro que forma uma linha horizontal, vertical ou diagonal de quatro peças, todas com um atributo em comum (todas curtas, todas circulares, etc.). Uma regra de variante incluída em muitas edições fornece uma segunda maneira de ganhar colocando quatro peças correspondentes em um quadrado 2 × 2.
-
table
(base, fundo, linhas=5, colunas=5, dx=0, dy=3, mx=0, my=0, livre=False)[source]¶ Cria um conjunto de casas de um tipo e aloca na cena dada.
Parameters: - base – A cena em que este tabuleiro vai entrar.
- fundo – A imagem que representa cada casa.
- livre – Indica se as casas estão livres ou ocupadas quando forem criadas.
- t – Tamanho (altura e largura do desenho da casa, inicia em um oitavo do tabuleiro.
- linhas – O número de linhas de casas neste tabuleiro.
- colunas – O número de colunas de casas neste tabuleiro.
- dx – O deslocamento horizontal em casas que cada casa tem em relação à esquerda.
- dy – O deslocamento vertical em casas que cada casa tem em relação ao topo.
- mx – Ajuste fino horizontal em pixels do posicionamento de cada casa.
- my – Ajuste fino vertical em pixels do posicionamento de cada casa.
Returns: Uma tabela de duas dimensões de casas arranjadas nas posições dadas.
Return type: Lista de listas contendo instâncias da classe Casa.
Projeto Alpha.¶
Um pequeno labirinto com várias câmaras.
Modulo Main¶
Projeto ALPHA - Jogo de Labirinto com cenas.
Calabouço de Barro.
Code author: Rodrigo Esquinelato <resquinelato@gmail.com>
Code author: Charles Soares Pimentel <pimentelufrj@gmail.com>
Changelog¶
Código alterado de Monica Novellino <monicanovellino@gmail.com>
New in version 20.07: Adicionei 5 imagens iniciais do labirinto e alterei o pacman (podem criar outro peronagem) Contador adicionado para gerar as seguintes fases em função da linha da matriz Contador adicionado para gerar as seguintes posições iniciais em função do índice da lista
-
class
alpha.main.
Eventos
[source]¶ Associa um evento a uma imagem e captura eventos de teclado.
-
BONECO
= 'https://i.imgur.com/k63kwfa.png'¶
-
CENA_corredor_1
= 'https://i.imgur.com/L71ZV6Z.png'¶
-
CENA_corredor_2
= 'https://i.imgur.com/5Qno2fs.png'¶
-
CENA_corredor_3
= 'https://i.imgur.com/gZ5wc0h.png'¶
-
CENA_corredor_4
= 'https://i.imgur.com/xI8i7Nc.png'¶
-
CENA_corredor_5
= 'https://i.imgur.com/GLVctqb.png'¶
-
listaFase
= ['https://i.imgur.com/5Qno2fs.png', 'https://i.imgur.com/gZ5wc0h.png', 'https://i.imgur.com/xI8i7Nc.png', 'https://i.imgur.com/GLVctqb.png']¶
-
See also
Modulo Hotel¶
Início Projeto Alpha.
Projeto ALPHA - Jogo de Labirinto com cenas.
Code author: Monica Novellino <monicanovellino@gmail.com>
Changelog¶
New in version 0.1: - Planta da casa - Boneco andando com as setas
-
class
alpha.hotel.
Eventos
[source]¶ Associa um evento a uma imagem e captura eventos de teclado.
-
BONECO
= 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/62/Prick%C3%A4tarpucken.svg/200px-Prick%C3%A4tarpucken.svg.png'¶
-
CENA_COZINHA
= 'https://www.decorfacil.com/wp-content/uploads/2018/03/20180311tons-de-rosa-03.jpg'¶
-
CENA_ESCRITORIO
= 'https://www.decorfacil.com/wp-content/uploads/2018/03/20180311tons-de-rosa-05.jpg'¶
-
CENA_PLANTA
= 'https://w7.pngwing.com/pngs/38/713/png-transparent-floor-plan-design-plan-media-schematic.png'¶
-
Modulo India¶
Início Projeto Alpha.
Jogo de Labirinto com cenas.
Calabouço de Barro.
Code author: Rodrigo Esquinelato <resquinelato@gmail.com>
Classe neste módulo:
Eventos
Gera a cena, personagem e a movimentação
Changelog¶
New in version 20.07: Criando a lógica do jogo e o layout das fases.
Contador adicionado para gerar as seguintes fases em função da linha da matriz.
Contador adicionado para gerar as seguintes posições iniciais em função do índice da lista.
-
class
alpha.india.
Eventos
[source]¶ Associa um evento a uma imagem
-
BONECO
= 'https://i.imgur.com/k63kwfa.png'¶
-
CENA_corredor_1
= 'https://i.imgur.com/L71ZV6Z.png'¶
-
CENA_corredor_2
= 'https://i.imgur.com/5Qno2fs.png'¶
-
CENA_corredor_3
= 'https://i.imgur.com/gZ5wc0h.png'¶
-
CENA_corredor_4
= 'https://i.imgur.com/xI8i7Nc.png'¶
-
CENA_corredor_5
= 'https://i.imgur.com/GLVctqb.png'¶
-
listaFase
= ['https://i.imgur.com/5Qno2fs.png', 'https://i.imgur.com/gZ5wc0h.png', 'https://i.imgur.com/xI8i7Nc.png', 'https://i.imgur.com/GLVctqb.png']¶
-
Projeto Bravo.¶
Um jogo que ensine o básico da programação no SuperPython.
Modulo Main¶
See also
Modulo India¶
Início Projeto Bravo.
Projeto Charlie.¶
Quebra-cabeças para ensino de programação orientada a objeto.
Modulo Main¶
Charlie - Projeto sem descrição, (mude esta linha).
Code author: Isaac D’Césares (golf) <isaac.dcesares@gmail.com>
Code author: Nome Sobrenome (hotel) <mail@local.tipo>
Code author: Nome Sobrenome (india) <mail@local.tipo>
Code author: Nome Sobrenome (juliet) <mail@local.tipo>
Changelog¶
New in version 20.07: Descreva o que você adicionou no código.
See also
Modulo Juliet¶
Início Projeto Charlie.
ensinar orientando ao objeto com quebra cabeça .
Code author: Leniah Lima <leniah@nce.ufrj.br>
Changelog¶
New in version 20.07: Descreva o que você adicionou no código.
Projeto Delta.¶
JOGO DA MEMÓRIA.
Modulo Main¶
Delta - Projeto sem descrição, (mude esta linha).
Code author: Paulo Assumpção (golf) <mail@local.tipo>
Code author: Anni Provietti (hotel) <mail@local.tipo>
Code author: Emanuelle Simas (india) <ellesimas@gmail.com>
Code author: Nome Sobrenome (juliet) <mail@local.tipo>
Changelog¶
New in version 20.07: Descreva o que você adicionou no código.
See also
Modulo Hotel¶
Início Projeto Delta.
Modulo India¶
Início Projeto Delta.
Modulo Juliet¶
Início Projeto Delta.
Modulo Golf¶
Início Projeto Delta.
Jogo da Memória.
Code author: Paulo Assumpção <paulo.assump@gmail.com>
Changelog¶
New in version 20.07: Grid 2x5 de cartões do jogo da memória shuffle das cartas bind do click sobre o botão regra do jogo
-
delta.golf.
IMG_HEIGHT
= 150¶ Classe responsável pelo desenho das cartas na cena
Projeto Echo.¶
jogo de tabuleiro de Olimpíada Matemática.
Modulo Main¶
Jogo Olimpíadas de Matemática20.07 * NEW: O jogo original Autor: Grupo Echo (Aline, Lorena, Renato e Victória)
See also
Modulo Hotel¶
Início Projeto Echo.
Modulo India¶
Início Projeto Echo.
Projeto sem descrição, (mude esta linha).
Code author: Victória Regina Caruzo <victoriareginalattes@gmail.com>
Changelog¶
New in version 20.07: Descreva o que você adicionou no código.
Modulo Juliet¶
Início Projeto Echo.
Modulo Golf¶
Início Projeto Echo.
Projeto Foxtrot.¶
Um jogo que ensine o básico da programaçao no SuperPython - SuperPython World.
Modulo Main¶
Foxtrot - Projeto sem descrição, (mude esta linha).
Code author: Nome Sobrenome (golf) <mail@local.tipo>
Code author: Nome Sobrenome (hotel) <mail@local.tipo>
Code author: Nome Sobrenome (india) <mail@local.tipo>
Code author: Nome Sobrenome (juliet) <mail@local.tipo>
Changelog¶
New in version 20.07: Descreva o que você adicionou no código.
See also
Modulo Hotel¶
Início Projeto Foxtrot.
Modulo India¶
Início Projeto Foxtrot.
Modulo Juliet¶
Início Projeto Foxtrot.
Modulo Golf¶
Início Projeto Foxtrot.
Projeto SuperPython World,
Code author: Raquel Fernandes <raquelmachado4993@gmail.com>
Changelog¶
New in version 20.07: Página inicial do Jogo.
-
foxtrot.golf.
FOCO
= 'https://i.imgur.com/6e096Va.png'¶ criando classe jogo
-
class
foxtrot.golf.
Jogo
[source]¶ -
avatar2
= None¶ exibindo elementos na cena sobre
-
botao_sobre
= None¶ exibindo cena
-
capa
= None¶ inserindo elementos na cena
-
castelo
= None¶ texto castelo
-
cena_sobre
= None¶ Cena sobre
ação após escolha do Avatar
-
porta
= None¶ textos
-
texto_jogar
= None¶ ação caso seja clicado
-
Tutorial Um.¶
Modulo Tutorial Um¶
Tutorial Um - respondendo dúvidas do SuperPython.
Code author: Carlo Oliveira <carlo@ufrj.br>
- Como associar um evento a uma imagem
- Como combinar cenas em salas diferentes
- Como capturar o teclado
Classes neste modulo:
Eventos
Exemplo de capturar eventos de mouse e teclado.
Changelog¶
New in version 20.07: Documentação do tutorial.
New in version 20.07.1: Inclui um import.
See also
Note
Este módulo é um tutorial ensinando a programar um jogo de tabuleiro simples.
Classe Eventos¶
Módulo Tutorial Um.
Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased¶
- to be defined
20.07¶
Fixed¶
- Shows by default main.py at page title.
- Some PEP8 refactoring and minor documentantion.
Added¶
- Handles filenames other than main.py.
- Accept new file specification in URL, use <filename>.pys
- New CHANGELOG.rst
- New readme.rst
- Add Version to inner pages
20.06¶
Fixed¶
- Kwarwp assignment documentation.
- Docker file gunicorn configuration
Added¶
- New readme.md