anagnorisis Posted May 14, 2008 at 08:58 PM Report Share #185154 Posted May 14, 2008 at 08:58 PM Boas, comunidade... Sou novo por estas bandas e tenho uma ligeira duvida se estou a meter isto na devida secção, mas continuando... Venho pedir uma ajuda, mas espero poder ajudar no futuro... Ora bem, foi-me proposto, para uma cadeira de programação, desenvolver o jogo Abalone em c++ com interface de texto... Dentro das particularidades do trabalho já desenvolvi um bocado, mas deparei-me com uma "parede" e agora nao consigo sair daqui... Para os interessados, o código fonte até à data encontra aqui: ProjectoAbalone Para facilitar a leitura do código e compreensão do mesmo, o que está implementado é: * Tabuleiro e sua devida representação no jogo em hexagono [classe Tabuleiro] * Rotinas para converter a jogada introduzida pelo jogador (p.ex.: a3) nas respectivas coordenadas reais da matriz (linha e coluna) [classe Indices] * A dinamica normal do jogo assim como uma rotina básica de movimento: [classe Jogo] -> apenas mexe a peça desejada para o destino desejado substituindo o que quer que lá esteja (sem validação) pela peça movida * Uma função para mudar de jogador assim como variáveis para guardar as informações de cada Jogador [classe Jogador]: -> Nome e a variavel tipo char PoB são as mais relevantes - PoB guarda ou P ou B consoante o tipo de peça do Jogador + De acordo com as regras do jogo o primeiro jogador é o que tem as peças Pretas, a variável PoB é atribuida automaticamente conforme esta regras * Inicializador em tabuleiro (inicializa o tabuleiro) * FUNÇOES (peço desculpa até mas como alguns nomes de funções sao obrigatorios, achei um bocado relevante e evita problemas na percepção): -> Jogo::trocaJogadores() troca de um jogador para o outro -> Jogo::executaJogada() função para a jogada -> Jogo::iniciaJogo() pede o nome a cada jogador e atribui a respectiva peça -> Indices::index() converte a jogada dada pelo jogador em coordenadas da matriz, só aceita coordenadas do tabuleiro disponiveis, as restantes são mandadas como erro para MyExceptions o Tabuleiro::imprimeTabuleiro() função de mostra do tabuleiro com os devidos acertos para aspecto hexagonal O que agora falta é: * Implementar regra básica de empurrar: -> O utilizador pode mexer 1, 2 ou um máximo de 3 peças por jogada que estejam em linha (diagonal ou horizontalmente) -> Ao defrontar-se com uma peça do utilizador, encontra-se a regra de PAC - só se pode "empurrar" peças com superioridade numerica por exemplo: + 2 peças brancas empurram apenas 1 peça preta (em linha) + 3 peças brancas empurram apenas 2 peças pretas (em linha) -> Um numero igual de peças estao bloqueadas (nessa linha) - só se podem movimentar as peças num sentido em que nao haja peças do adversário em igual ou superior numero * Finalização do jogo -> Ganha o primeiro jogador que "empurrar" 6 peças do adversário para fora do tabuleiro Obrigado por lerem... se tiverem alguma ideia ou até algum código em c++ sem interface gráfico disponivel, agradecia a ajuda... Abraço Link to comment Share on other sites More sharing options...
anagnorisis Posted May 18, 2008 at 10:53 PM Author Report Share #185979 Posted May 18, 2008 at 10:53 PM Ora bem... O problema já foi resolvido e o projecto entregue... O programa agora cobre quase todas as regreas do jogo (só nao confirma uma regra)... Há algumas, bastantas, arestas que gostaria de limar... mas, para efeitos do projecto já está resolvido... um dia mais tarde, se calhar, dedico-me ao resto... Devido ao ambiente de texto fica uma aplicação muito chata e pesada para a vista... este jogo deveria ser so implementado em ambiente gráfico com interface de rato!... mas bem, era-me pedido assim!... Se alguem estiver interessado no codigo, contacte-me... Link to comment Share on other sites More sharing options...
richardnunes Posted May 8, 2011 at 09:52 PM Report Share #386306 Posted May 8, 2011 at 09:52 PM ola anagnorisis, o teu codigo se calhar ate podia vir a ajudar-me para o meu projecto. é muito semilhar. será que o ainda tens por aí? agradecia imenso! 😉 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now