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.

Changelog

New in version 20.07: Criando o tabuleiro.

New in version 20.07.01: Criando Pino e Casa.

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.
entrar(nome)[source]

Permite um pino entrar nesta casa se ela estiver livre.

Parameters:nome – O nome do pino que vai entrar na casa.

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.

vai()[source]

Aloca esta cena na página do navegador.

Laboratório de Automação de Sistemas Educacionais

Copyright © Carlo Olivera

LABASE - NCE - UFRJ

LABASE