Enunciado

Transcrição

Enunciado
Universidade dos Açores
Departamento de Matemática
Estruturas e Algoritmos / Algoritmos e Estruturas de Dados
Trabalho de casa n.º 4
Implementação do jogo Mahjong
Docente: Paulo Leocádio
Trabalho n.º 4 – Implementação do jogo Mahjong
Introdução
Mahjong é um jogo de mesa de origem chinesa que foi exportado, a partir de 1920, para
o resto do mundo e principalmente para o ocidente. É composto de 144 peças. São elas:
•
36 pedras do naipe “Moeda” (筒子牌)
(x 4)
•
36 pedras do naipe “Bambu” (索子牌)
(x 4)
•
36 pedras do naipe “Miríade” (萬子牌)
(x 4)
•
16 pedras de Vento “Leste” (東), “Sul”(南), “Oeste”(西), “Norte”(北)
(x 4)
•
12 pedras dos Três Elementos: “Centro Vermelho” (中), “Fortuna Verde”(發) e
“Pedra Branca”(白)
(x 4)
•
4 pedras de flores: “Ameixa” (梅), “Orquídea” (兰), “Crisântemo” (菊) e “Bambu”
(竹 )
(x 1)
•
4 pedras de estações: “Primavera” (春), “Verão” (夏), “Outono” (秋) e “Inverno”
(冬 )
(x 1)
2
Trabalho n.º 4 – Implementação do jogo Mahjong
Existem diversas versões deste jogo, umas mais próximas da original, e outras
apresentando diferentes variantes, regras e até mesmo distintas do Mahjong original.
A versão aqui apresentada é a do Mahjong Solitaire, que é a mais conhecida em jogos
de internet.
Nesta versão do jogo pode-se ainda aplicar diferentes esquemas de disposição das
peças (tartaruga, dragão, gato, etc.). Aqui para o trabalho o esquema escolhido para
implementação será a Tartaruga (Turtle) (imagem da capa).
Objectivo do jogo
O objectivo do jogo é retirar todas as peças do tabuleiro sempre em pares de peças
iguais.
Regras do jogo
Após todas as peças terem sido dispostas no tabuleiro de acordo com o esquema
escolhido, o jogador começa a retirar pares de peças iguais. No entanto, o jogador apenas
pode escolher e retirar peças que estejam ambas visíveis e livres ou à direita, ou à esquerda,
ou em ambos os lados.
O jogo termina quando todas as peças forem retiradas ou em caso de inexistência de
pares para serem retirados. Neste último caso o jogo termina sem a vitória do jogador.
Exemplos:
3
Trabalho n.º 4 – Implementação do jogo Mahjong
Disposição das peças no tabuleiro do jogo
Na versão e esquema escolhidos de Mahjong para este trabalho teremos um tabuleiro
com dimensão 8x15x5 (linhas x colunas x nível).
As peças serão dispostas no tabuleiro de acordo com o nível em que se encontram.
Nível 1: 87 peças
Nível 2: 36 peças
Nível 3: 16 peças
4
Trabalho n.º 4 – Implementação do jogo Mahjong
Nível 4: 4 peças
Nível 5: 1 peça
Visto de lado temos a seguinte disposição:
Nível 5
Nível 4
Nível 3
Nível 2
Nível 1
5
Trabalho n.º 4 – Implementação do jogo Mahjong
Pretende-se:
3,0 pts
1. Implementar uma classe Java de nome Peca que descreva uma peça de Mahjong,
sabendo que cada peça é caracterizada pela seguinte informação:
id: é o nome da peça
pontos: o nº de pontos atribuído à peça
npecas: um inteiro que inicialmente indica o nº de máximo peças deste tipo e que será
decrementado por cada peça em uso
Os pontos de cada peça serão de acordo com o seguinte:
- Peças dos naipes “Moeda”, “Bambu” e “Miríade” coincidem com o valor da peça;
- Peças de “Vento” valem 15 pontos cada;
- Peças de “Elementos” valem 20 pontos cada;
- Peças de “Flores” e “Estações” valem 25 pontos cada.
Na classe Peca, para além dos atributos deverá implementar um método construtor, que
recebe os argumentos relativos aos atributos da peça, métodos selectores (get’s) para
todos os atributos, e um método modificador (set’s) para o atributo npecas.
1,0 pts
2. Criar a classe Mahjong que será a responsável pela implementação do jogo. Deverá conter
um array de Pecas, um tabuleiro de Mahjong sob a forma de array tridimensional, em que
cada posição do tabuleiro não é mais do que uma Peca referenciada no array de Pecas, e
um inteiro onde serão guardados e actualizados os pontos obtidos até ao momento.
3. Na classe Mahjong implemente os seguintes métodos:
1,5 pts
3.1. Método isVisible que retorna True ou False conforme a peça esteja visível ou não no
tabuleiro. Considera-se por peça visível toda a peça que não contenha qualquer
sobreposição de peças em níveis superiores ao seu.
1,0 pts
3.2. Método isFree que recebe a posição de uma peça no tabuleiro, verifica se esta está
livre para ser retirada ou não e retorna o booleano correspondente à situação dela.
1,0 pts
3.3. Método equals que compara uma peça com outra verificando se é igual. Caso sejam
iguais deverá retornar o valor True.
1,0 pts
3.4. Método remove que recebe as coordenadas de duas peças e retira-as do tabuleiro,
no caso de ambas estarem visíveis, livres para remoção e serem iguais. Caso tais
condições sejam verdadeiras, o método deverá retirar a referência das peças do
tabuleiro e retornar o valor True. Note-se que “retirar” significa que aquela posição
fica vazia (null).
6
Trabalho n.º 4 – Implementação do jogo Mahjong
1,0 ponto
3.5. Método play que recebe as coordenadas de duas peças e remove-as do tabuleiro,
desde que tal seja possível. Deverá retornar o valor True em caso de remoção ou
False, em caso contrário.
1,5 pontos
3.6. Método view que imprime para o ecrã uma tabela com a disposição das peças no
tabuleiro a partir de uma vista do topo. Note-se que apenas deverão ser impressas
as peças que estão visíveis.
3,0 pontos
3.7. Método shuffle que deverá dispor aleatoriamente as 144 peças pelos cinco níveis do
tabuleiro.
3,0 pontos
3,0 pontos
3.8. Método exists que deverá verificar a cada momento se existe alguma jogada
possível ou se o jogo terminou, retornando True ou False em função da existência ou
não de jogadas.
4. Implemente o restante código que torne possível jogar Mahjong. Poderá optar por fazer
uma implementação do jogo para execução em consola, ou graficamente, utilizando para a
última opção a aplicação gráfica que será disponibilizada pelo docente.
Caso opte por uma implementação gráfica, os nomes das peças deverão os nomes das
imagens (nomefich.extensão).
No caso de optar por uma execução em consola nomeie as peças da seguinte forma:
- Peças “Moeda”: C1, C2, …, C9
- Peças “Bambu”: B1, B2, …, B9
- Peças “Miríade”: M1, M2, …, M9
- Peças “Vento”: VN, VS, VE, VO
- Peças “Elementos”: CV, FV, PB
- Peças “Flores”: FA, FO, FC, FB
- Peças “Estações”: EP, EV, EO, EI
Critérios de avaliação:
- Correcto funcionamento do jogo de acordo com as especificações dadas;
- Eficiência e correcção dos algoritmos e métodos implementados;
- Código comentado fazendo uso de Javadoc;
Entrega do trabalho: 17 de Abril de 2009, até às 24:00 horas
Endereço de e-mail: [email protected]
Observação: O trabalho deverá ser entregue num único ficheiro compactado contendo a parte
de Java, e um ficheiro do Microsoft Word com a identificação dos elementos do grupo e um
pequeno relatório de onde devem constar as opções tomadas, as dificuldades, etc.
7

Documentos relacionados

Manual do KMahjongg

Manual do KMahjongg 1 de Caracteres 2 de Caracteres 3 de Caracteres 4 de Caracteres 5 de Caracteres 6 de Caracteres 7 de Caracteres 8 de Caracteres 9 de Caracteres

Leia mais

Egipto + Senet - Jorge Nuno Silva

Egipto + Senet - Jorge Nuno Silva (Pode usar-se um dado vulgar e acordar que quem tirar 5 lança de novo.) 1. Os jogadores lançam alternadamente os estiletes até que um deles obtenha 1. Esse jogador fica com as peças posicionadas na...

Leia mais