Kwarwp

Um jogo de aventura que se joga aprendendo e criando programas na linguagem Python.

Este ambiente facilita a aprendizagem da linguagem Python.

O jogo é dirigido principalmente ao ensino de programação de computadores para jovens e crianças do ensino médio e fundamental.

Documentação

Descrição dos módulos do Kwarwp.

Jogo para ensino de programação Python.

Classes neste módulo:
  • Kwarwp Jogo para ensino de programação.
  • Indio Personagem principal do jogo.
  • JogoProxy Proxy que enfileira comandos gráficos.

Changelog

New in version 20.08.b1: Adicionou JogoProxy para realizar o passo a passo. Capacidade de gerenciar mais de um índio.

Changed in version 20.08.b0: Moveu constantes de classe VITOLLINO, LADO para Vazio. Moveu Vazio, Oca, Piche para kwarwpart.

New in version 20.08.a3: Movimentação do índio para Indio.esquerda() e Indio.direita(). Fala do índio: Indio.fala(). classes Oca e Piche, double dispatch para sair.

New in version 20.08.a2: Classe Vazio que recebe cada componente do mapa. Movimentação do índio é feita pulando para outro vazio.

New in version 20.08.a1: Classe Indio que executa roteiro e anda.

New in version 20.08.a0: Fábrica de componentes classe Indio. Usa um mapa de caracteres para colocar os elementos.

New in version 20.07: classe Kwarwp.

kwarwp.kwarapp.IMGUR = 'https://imgur.com/'

Prefixo do site imgur.

class kwarwp.kwarapp.Indio(imagem, x, y, cena, taba, vitollino=None)[source]

Cria o personagem principal na arena do Kwarwp na posição definida.

Parameters:
  • imagem – A figura representando o índio na posição indicada.
  • x – Coluna em que o elemento será posicionado.
  • y – Cinha em que o elemento será posicionado.
  • cena – Cena em que o elemento será posicionado.
  • taba – Representa a taba onde o índio faz o desafio.
AZIMUTE = Rosa(n=Ponto(x=0, y=-1), l=Ponto(x=1, y=0), s=Ponto(x=0, y=1), o=Ponto(x=-1, y=0))

Constante com os pares ordenados que representam os vetores unitários dos pontos cardeais.

acessa(ocupante)[source]

Pedido de acesso a essa posição, delegada ao ocupante pela vaga.

Parameters:ocupante – O componente candidato a ocupar a vaga já ocupada pelo índio.

No caso do índio, ele age como um obstáculo e não prossegue com o protocolo.

anda()[source]

Objeto tenta sair, tem que consultar a vaga onde está

ativa()[source]

Ativa o proxy do índio para enfileirar comandos.

azimute = None

índio olhando para o norte

direita()[source]

Faz o índio mudar da direção em que está olhando para a direita.

elt

A propriedade elt faz parte do protocolo do Vitollino para anexar um elemento no outro .

No caso do índio, retorna o elt do elemento do atributo self.indio.

empurra()[source]

Objeto tenta sair, tem que consultar a vaga onde está

esquerda()[source]

Faz o índio mudar da direção em que está olhando para a esquerda.

executa()[source]

Roteiro do índio. Conjunto de comandos para ele executar.

fala(texto='')[source]

O índio fala um texto dado.

Parameters:texto – O texto a ser falado.
gira()[source]

Modifica a figura (Sprite) do índio mostrando para onde está indo.

larga()[source]

tenta largar o objeto que está segurando

mostra(vaga=None)[source]

Modifica a figura (Sprite) do índio mostrando para onde está indo.

ocupa(vaga, *_)[source]

Pedido por uma vaga para que ocupe a posição nela.

Parameters:vaga – A vaga que será ocupada pelo componente.

No caso do índio, requisita que a vaga seja ocupada por ele.

ocupou(ocupante)[source]

O candidato à vaga decidiu ocupá-la e efetivamente entra neste espaço.

Parameters:ocupante – O canditato a ocupar a posição corrente.

Este ocupante vai entrar no elemento do Vitollino e definitivamente se tornar o ocupante da vaga. Com isso ele troca o estado do método acessa para primeiro consultar a si mesmo, o ocupante corrente usando o protocolo definido em _valida_acessa ()

passo()[source]
pega()[source]

tenta pegar o objeto que está diante dele

sai()[source]

Rotina de saída falsa, o objeto Indio é usado como uma vaga nula.

sair()[source]

Objeto de posse do índio tenta sair e é autorizado

siga()[source]

Objeto tentou sair e foi autorizado

x = None

Este x provisoriamente distingue o índio de outras coisas construídas com esta classe

class kwarwp.kwarapp.JogoProxy(vitollino=None, elt=None, proxy=None, master=False)[source]

Proxy que enfileira comandos gráficos.

Parameters:
  • vitollino – Empacota o engenho de jogo Vitollino.
  • elt – Elemento que vai ser encapsulado pelo proxy.
  • proxy – Referência para o objeto proxy parente.
  • master – Determina se este elemento vai ser mestre de comandos.
a(*args, **kwargs)[source]

Método fábrica - Encapsula a criação de elementos

Parameters:
  • args – coleção de argumentos posicionais.
  • kwargs – coleção de argumentos nominais.
Returns:

Proxy para um Elemento construído com estes argumentos.

ae = None

Cria um referência o Adapador de Eelementos

ativa()[source]

Ativa Fábrica do JogoProxy

c(*args, **kwargs)[source]

Encapsula a criação de cenas - apenas delega.

Parameters:
  • args – coleção de argumentos posicionais.
  • kwargs – coleção de argumentos nominais.
Returns:

Uma Cena do Vitollino construída com estes argumentos.

corrente

Ativa Fábrica do JogoProxy

cria()[source]

Fábrica do JogoProxy

e(*args, **kwargs)[source]

Método fábrica - Encapsula a criação de elementos ativos, que executam scripts

Parameters:
  • args – coleção de argumentos posicionais.
  • kwargs – coleção de argumentos nominais.
Returns:

Proxy para um Elemento construído com estes argumentos.

elt

Propriedade elemento

executa(*_)[source]

Tira e executa um comando na fila

lidar(metodo)[source]

Lida com modo de operação do JogoProxy

ocupa(ocupante=None, pos=(0, 0))[source]

Muda a posição e atitude de um elemento

pos

Propriedade posição

siz

Propriedade tamanho

x

Propriedade posição x

y

Propriedade posição y

class kwarwp.kwarapp.Kwarwp(vitollino=None, mapa=None, medidas={}, indios=())[source]

Jogo para ensino de programação.

Parameters:
  • vitollino – Empacota o engenho de jogo Vitollino.
  • mapa – Um texto representando o mapa do desafio.
  • medidas – Um dicionário usado para redimensionar a tela.
KW = None
apedra(imagem, x, y, cena)[source]

Cria uma pedra na arena do Kwarwp na posição definida.

Parameters:
  • x – coluna em que o elemento será posicionado.
  • y – linha em que o elemento será posicionado.
  • cena – cena em que o elemento será posicionado.

Cria uma vaga vazia e coloca o componente dentro dela.

atora(imagem, x, y, cena)[source]

Cria uma tora na arena do Kwarwp na posição definida.

Parameters:
  • x – coluna em que o elemento será posicionado.
  • y – linha em que o elemento será posicionado.
  • cena – cena em que o elemento será posicionado.

Cria uma vaga vazia e coloca o componente dentro dela.

barra(imagem, x, y, cena)[source]

Cria uma armadilha na arena do Kwarwp na posição definida.

Parameters:
  • x – coluna em que o elemento será posicionado.
  • y – linha em que o elemento será posicionado.
  • cena – cena em que o elemento será posicionado.

Cria uma vaga vazia e coloca o componente dentro dela.

coisa(imagem, x, y, cena)[source]

Cria um elemento na arena do Kwarwp na posição definida.

Parameters:
  • x – coluna em que o elemento será posicionado.
  • y – linha em que o elemento será posicionado.
  • cena – cena em que o elemento será posicionado.

Cria uma vaga vazia e coloca o componente dentro dela.

col = None

Largura da casa da arena dos desafios, número de colunas e linhas no mapa

cria(mapa='')[source]

Fábrica de componentes.

Parameters:mapa – Um texto representando o mapa do desafio.
executa(*_)[source]

Ordena a execução do roteiro do índio.

fala(texto='')[source]

O Kwarwp é aqui usado para falar algo que ficará escrito no céu.

indio(imagem, x, y, cena)[source]

Cria o personagem principal na arena do Kwarwp na posição definida.

Parameters:
  • x – coluna em que o elemento será posicionado.
  • y – linha em que o elemento será posicionado.
  • cena – cena em que o elemento será posicionado.
lado = None

Largura da casa da arena dos desafios, número de colunas e linhas no mapa

lin = None

Largura da casa da arena dos desafios, número de colunas e linhas no mapa

maloc(imagem, x, y, cena)[source]

Cria uma maloca na arena do Kwarwp na posição definida.

Parameters:
  • x – coluna em que o elemento será posicionado.
  • y – linha em que o elemento será posicionado.
  • cena – cena em que o elemento será posicionado.

Cria uma vaga vazia e coloca o componente dentro dela.

mapa = None

Cria um matriz com os elementos descritos em cada linha de texto

ocupa(*_)[source]

O Kwarwp é aqui usado como um ocupante falso, o pedido de ocupar é ignorado.

os_indios = None

Instância do personagem principal, o índio, vai ser atribuído pela fábrica do índio

passo(*_)[source]

Ordena a execução do roteiro do índio.

sai(*_)[source]

O Kwarwp é aqui usado como uma vaga falsa, o pedido de sair é ignorado.

taba = None

Cria um dicionário com os elementos traduzidos a partir da interpretação do mapa

vazio(imagem, x, y, cena)[source]

Cria um espaço vazio na arena do Kwarwp na posição definida.

Parameters:
  • x – coluna em que o elemento será posicionado.
  • y – linha em que o elemento será posicionado.
  • cena – cena em que o elemento será posicionado.
vitollino = None

Referência estática para obter o engenho de jogo.

kwarwp.kwarapp.MAPA_INICIO = '\n..#^¨..\n'

Mapa com o posicionamento inicial dos elementos.

class kwarwp.kwarapp.Ponto(x, y)

Par de coordenadas na direção horizontal (x) e vertiacal (y).

x

Alias for field number 0

y

Alias for field number 1

class kwarwp.kwarapp.Rosa(n, l, s, o)

Rosa dos ventos com as direções norte, leste, sul e oeste.

l

Alias for field number 1

n

Alias for field number 0

o

Alias for field number 3

s

Alias for field number 2

kwarwp.kwarapp.main(vitollino, medidas={}, mapa=None, indios=())[source]

Rotina principal que invoca a classe Kwarwp.

Parameters:
  • vitollino – Empacota o engenho de jogo Vitollino.
  • medidas – Um dicionário usado para redimensionar a tela.

Indices and tables