Modulo Vitollino¶
Note
Engenho de jogos do Superpython
Gerador de labirintos e jogos tipo ‘novel’.¶
Gerador de labirintos e jogos tipo ‘novel’.
-
class
vitollino.main.Cena(img='', esquerda=<CenaNula>, direita=<CenaNula>, meio=<CenaNula>, vai=None, nome='', xy=(0, 0), score={}, **kwargs)[source]¶ Use para construir uma cena.
from _spy.vitollino import Cena cena_esq = Cena(img="esq.jpg") cena_mei = Cena(img="mei.jpg", cena_esq) cena_mei.vai()
Parameters:
-
class
vitollino.main.Codigo(codigo='', topo='', cena=Inventario, img='', vai=None, style={})[source]¶ - Um objeto de interação que é representado por uma trecho de código em uma cena.
- exemplo = Codigo(
- codigo=”from anna import main”, topo=”Importando um módulo”, vai=testa_codigo, style=dict(left=350, top=550, width=60))
Parameters: - codigo – O código de programa
- vai – função executada quando se clica no objeto
- style – dicionário com dimensões do objeto {“left”: …, “top”: …, width: …, height: …}
- topo – Texto que aparece no topo do bloco
- cena – cena onde o objeto vai ser colocado
-
class
vitollino.main.Cursor(alvo, cena=<BrythonMock name='mock.__getitem__()' id='139857815857184'>)[source]¶
-
class
vitollino.main.Elemento(img='', vai=None, style={}, tit='', alt='', x=0, y=0, w=100, h=100, o=1, texto='', cena=Inventario, score={}, drag=False, drop={}, tipo='100% 100%', **kwargs)[source]¶ Um objeto de interação que é representado por uma imagem em uma cena.
- papel = Elemento(
- img=”papel.png”, tit=”caderno de notas”, vai=pega_papel, style=dict(left=350, top=550, width=60))
Parameters: - img – URL de uma imagem
- vai – função executada quando se clica no objeto
- style – dicionário com dimensões do objeto {“left”: …, “top”: …, width: …, height: …}
- tit – Texto que aparece quando se passa o mouse sobre o objeto
- alt – Texto para leitores de tela
- x – Posição x, na horizontal a partir da esquerda do elemento na cena
- y – Posição y, na vertical a partir do topo do elemento na cena
- w – Largura em pixels do elemento na cena
- h – Altura em pixels do elemento na cena
- texto – Se fornecido, este texto vai aparecer quando se clica no elemento
- cena – cena alternativa onde o objeto vai ser colocado
- score – determina o score para este elemento
- drag – Se o valor for True, o o elmento será arrastável, default Faslse
- drop – recebe um dicionário {“a”: ator} onde ator é uma função def ator(ev, nome} chamada quando “a” é arrastado cá
- kwargs – lista de parametros nome=URL que geram elementos com este nome e a dada imagem
-
drag¶
-
drag_set¶
-
drop_set¶
-
o¶
-
style¶
-
style_set¶
-
tit¶
-
x¶
-
y¶
-
class
vitollino.main.Elemento_(img='', vai=None, style={}, tit='', alt='', cena=Inventario, score={}, drag=False, drop='', **kwargs)[source]¶ Um objeto de interação que é representado por uma imagem em uma cena.
- papel = Elemento(
- img=”papel.png”, tit=”caderno de notas”, vai=pega_papel, style=dict(left=350, top=550, width=60))
Parameters: - img – URL de uma imagem
- vai – função executada quando se clica no objeto
- style – dicionário com dimensões do objeto {“left”: …, “top”: …, width: …, height: …}
- tit – Texto que aparece quando se passa o mouse sobre o objeto
- alt – Texto para leitores de tela
- cena – cena alternativa onde o objeto vai ser colocado
- score – determina o score para este elemento
- kwargs – lista de parametros nome=URL que geram elementos com este nome e a dada imagem
-
limbo= <BrythonMock name='mock.DIV()' id='139857815290640'>¶
-
class
vitollino.main.Inventario(tela=<BrythonMock name='mock.__getitem__()' id='139857815857184'>)[source]¶ Os objetos que estão de posse do jogador.
Parameters: tela – Div do HTML onde o inventário será anexado -
GID= '80a75ccc'¶
-
bota(nome_item, item='', drag=False, acao=None)[source]¶ Os objetos que estão de posse do jogador.
>>> inv.bota("uma_coisa") >>> "uma_coisa" in inv.inventario True
Parameters: - nome_item – uma string com o nome do item, ele será criado e colocado no inventário
- item – URL da imagem do item nomeado por nome_item
- drag – Se for True o objeto será arrastável
- acao – ação associada com o item nomeado quando ele é clicado
-
-
class
vitollino.main.Jogo[source]¶ -
algo¶ Acessa a classe Elemento
-
cena¶ Acessa a classe Cena
-
nota¶ Acessa a classe Texto
-
quarto¶ Acessa a classe Sala
-
sala¶ Acessa a classe Salao
-
-
class
vitollino.main.Labirinto(c=<CenaNula>, n=<CenaNula>, l=<CenaNula>, s=<CenaNula>, o=<CenaNula>)[source]¶
-
class
vitollino.main.Portal(cena=None, debug_=False, **kwargs)[source]¶ -
L= {'cursor': 'e-resize', 'left': '90%', 'margin': '0%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%'}¶
-
N= {'cursor': 'n-resize', 'left': '20%', 'margin': '0%', 'min-height': '20%', 'position': 'absolute', 'top': 0, 'width': '60%'}¶
-
O= {'cursor': 'w-resize', 'left': 0, 'margin': '0%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%'}¶
-
PORTAIS= {'L': {'cursor': 'e-resize', 'left': '90%', 'margin': '0%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%'}, 'N': {'cursor': 'n-resize', 'left': '20%', 'margin': '0%', 'min-height': '20%', 'position': 'absolute', 'top': 0, 'width': '60%'}, 'O': {'cursor': 'w-resize', 'left': 0, 'margin': '0%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%'}, 'S': {'bottom': 0, 'cursor': 's-resize', 'left': '20%', 'margin': '0%', 'min-height': '10%', 'position': 'absolute', 'width': '60%'}, 'Z': {'cursor': 'zoom-in', 'margin': '0%', 'min-height': '10%', 'position': 'absolute', 'width': '10%'}}¶
-
S= {'bottom': 0, 'cursor': 's-resize', 'left': '20%', 'margin': '0%', 'min-height': '10%', 'position': 'absolute', 'width': '60%'}¶
-
Z= {'cursor': 'zoom-in', 'margin': '0%', 'min-height': '10%', 'position': 'absolute', 'width': '10%'}¶
-
-
class
vitollino.main.Sala(n=<CenaNula>, l=<CenaNula>, s=<CenaNula>, o=<CenaNula>, nome='', **kwargs)[source]¶ -
-
leste¶
-
norte¶
-
oeste¶
-
sul¶
-
-
class
vitollino.main.SalaCenaNula[source]¶ Define uma Sala ou uma Cena vazia.
>>> cena = Cena(SalaCenaNula()) # A próxima cena >>> uma_cena = Cena(SalaCenaNula(), cena) # Cena nula à esquerda, proxima no meio >>> uma_cena.vai_esquerda() # tenta navegar para a cena à esquerda >>> # não vai, pois a cena é nula e não deixa que se navegue para ela >>> print(INVENTARIO.cena == cena) True
Deve ser usado quando um parâmetro requer uma cena mas não deve ter uma cena válida ali.
-
class
vitollino.main.Salao(n=<CenaNula>, l=<CenaNula>, s=<CenaNula>, o=<CenaNula>, nome='', **kwargs)[source]¶
-
vitollino.main.singleton(cls_to_decorate)[source]¶ Decora um classe para ser um singleton e retornar sempre a mesma instância.
>>> @singleton ... class Mono: ... def __init__(self): ... self.x = 0 ... >>> Mono().x, Mono().x = 1, 2 >>> print(Mono().x == Mono().x, Mono().x) True 2
Parameters: cls_to_decorate – A classe para ser definida como singleton Returns: O decorador de singleton
-
vitollino.main.wraps_class_to_mimic_wrapped(original_cls)[source]¶ Empacota uma classe decoradora para que apareça corretamente nos documentos.
>>> @wraps_class_to_mimic_wrapped ... class Exemplo: ... ... ... >>> print(Exemplo.__doc__) Atualiza wrapper_cls para se assemelhar à classe original_cls.
Parameters: original_cls – A Classe a ser empacotada Returns: O empacotador da classe