Trabalho pratico em C do "jogo do quadrado" - C - Portugal-a-Programar
Trabalho pratico em C do "jogo do quadrado"
By Jorge Esteves, May 9, 2011 in C
Jorge Esteves 0
Estou com imensas duvidas em relação a realização deste trabalho dado que não sou um bom programador e ser o meu primeiro ano.
Ainda mais quando nunca tinha ouvido falar de tal jogo.
"Na sua variante mais simples, este é um jogo para duas pessoas que decorre num tabuleiro com N linhas e M colunas. O jogo inicia-se num tabuleiro vazio e os jogadores alternadamente colocam uma peça numa intersecção entre uma linha e uma coluna. As peças são iguais para os dois jogadores. Perde o jogo quem colocar uma peça que permita formar um quadrado no tabuleiro."
"Durante o jogo, o programa mantém o estado actual do tabuleiro, obtém e valida jogadas dos jogadores pela ordem correcta e vai actualizando o tabuleiro. Deve ainda detectar o final do jogo e identificar o vencedor. No caso de jogos com mais do que duas pessoas,
sempre que alguém é eliminado, deve proceder à actualização do tamanho do tabuleiro. Para além do funcionamento básico descrito, o programa deve disponibilizar as seguintes
1. Regressar a um ponto anterior do jogo (opção ´Undo): Cada jogador tem a oportunidade de accionar uma vez a opção Undo. Esta opção deve ser activada antes do jogador efectuar o seu movimento, permitindo-lhe regressar a uma configuração anterior (uma configuração em que seja a vez do mesmo jogador efectuar o movimento). Depois de activar a opção Undo, o jogador deve efectuar
2. Interromper o jogo: um jogo pode ser interrompido a meio. O estado do jogo deve ser guardado num ficheiro (jogadores, configuração actual do tabuleiro, jogadas já efectuadas), para que mais tarde seja possível retomá-lo. Esta funcionalidade só deve estar disponível se todos os jogadores estiverem registados. Ao guardar um jogo que foi interrompido, o programa deve gerar e fornecer aos jogadores um código alfanumérico. O jogo poderá ser retomado mais tarde, mediante a apresentação do código.
Durante um jogo, toda a informação sobre o tabuleiro e a sucessão de jogadas deve ser armazenada em variáveis dinâmicas (vectores alocados dinamicamente e/ou listas ligadas).
Os jogos interrompidos podem ser armazenados em ficheiros de texto ou ficheiros binários."
Agradeço o vosso tempo disponibilizado,
Qual a dúvida ao certo? Não esperes que te dêem o código.
a minha maior duvida está na construção do tabuleiro, dado que o tabuleiro não pode ser feito por arrays e no codigo da funcionalidade do programa.
Vais ter que utilizar pelo menos um vector de estruturas (por exemplo) para guardar as coordenadas...
O que podes fazer é uma coisa deste género:
int *tabuleiro;
tabuleiro = malloc(sizeof(int) * linhas * colunas);
A partir daqui é ir actualizando o tabuleiro, p.ex., 0 se a posição ainda estiver livre, 1 se já tiver sido marcada!