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
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 maisEgipto + 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