Bom, estive a alterar o código para separar o que é output para a consola do que é tratamento de dados e o funcionamento do jogo. Penso que agora apenas uma função está a imprimir texto, à excepção da função Jogar2Jogadores(), que é a função de alocar memória!
Agora estava a tentar fazer uma função para jogar um jogador contra o PC. Pelo facto de ter feito aquele mapeamento do UM = 1, DOIS = 5 e TRES = 9, agora está-me a dificultar a vida!
Eu criei uma função para gerar uma posição aleatória na tabela.
int GerarPosicaoAleatoria(void){
int PosAleatoria;
int MapaPos[9] = {1, 5, 9, 12, 16, 20, 23, 27, 31};
//gerar um valor pseudo-aleatório entre 0 e (8 + 1). A array tem 9 posições cujos índices vão de 0 a 8.
PosAleatoria = rand() % 9;
return MapaPos[PosAleatoria];
}
Ou seja, aquela array contém as posições, em termos absoutos, que o computador pode ocupar. O valor aleatório é, no fundo, uma posição aleatória da array que contém as posições de interesse, e devolve-se a posição de interesse que corresponde ao valor aleatório gerado.
Agora o problema que se coloca é que a função ActualizaTabuleiro() recebe as coordenadas no formato 'x,y'. Tenho que arranjar uma forma de converter o valor devolvido pela função GerarPosicaoAleatoria() para o formato "exigido" pela função ActualizaTabuleiro()!
↧