Jump to content

Ajuda com função que não faz o que devia!


lightningspirit

Recommended Posts

Olás! Será que alguém me pode ajudar a encontrar um nesta função?

Eu tenho como estruturas:

typedef struct 
{
int colunas;
int linhas;
char tabuleiro[10][10];
} Tabuleiro; 

typedef struct
{
char jogador[256];
int nivel_dificuldade;
Estado estado_do_jogo;
Tabuleiro tabuleiro;
} Jogo;

e tenho a seguinte função que é chamada por uma outra. Sei que o erro está aqui, mas não consigo perceber onde.

int verificaQuatroMarcas(Tabuleiro *tabuleiro, char marca)
{
int coluna, linha;
for(coluna=1;coluna<=(tabuleiro->colunas);coluna++)
{
	for(linha=1;linha<=(tabuleiro->linhas);linha++)
	{	
		if(maiorAdjacente(tabuleiro,marca,coluna,linha)>3) { return TRUE;  }
		else printf("\nVerificado!");
	}
}
return FALSE;
}

Tomando, anteriormente, valores arbitrários para colunas e linhas, a função deveria mostrar a mensagem verificado para cada uma das posições da matriz tabuleiro (colunas * linhas) porém isso não acontece, só apresenta no ecrã "linhas" vezes. Presumo que ela só lê para as posições da coluna 1 e descarta as outras, porque razão, alguém me sabe dizer?

Link to comment
Share on other sites

Faz um debug.

Outra alternativa, coloca um printf("TRUE"); antes do return TRUE;

Pode estar a acontecer que a função maiorAdjacente(...) não retorne o que deveria. E uma das causas é o facto de estares a usar tipo

linha=1;linha<=(tabuleiro->linhas)

em vez de

linha=0;linha<(tabuleiro->linhas)

mas isso depende do valor que atribuires a tabuleiro->linhas.

Da mesma forma para coluna.

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.