• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

DMBoss

Duvida

4 mensagens neste tópico

tenho de fazer uma sopa de letras

estou a ter dificuldade na parte de verificar as palavras

ja falei com amigos meus que tambem estao a fazer a cadeira

e eles dizem que está bem so que o resultado final não é o esperado

o codigo e este

int verificaPalavraHorizontal(char sopaLetras[L_MAX][C_MAX], int lin, int col){
int i;

for(i = L_MAX; i > L_MAX; i++){
	if(lin == "%d" && col == "%d");
}

}

será que me podem ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para que queres esse if se não tens nada dentro dele?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e essa parte que me falta

o ciclo deve retornar se encontrou ou nao uma palavra nas coordenadoas dadas pelo utilizador

so que não tou a conseguir fazer essa parte

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o código que já tenho feito até agora é este

#include <stdio.h>

#define TRUE 1
#define FALSE 0
#define L_MAX 6
#define C_MAX 6
#define MAX_CHARS 20
#define MAX_PALAV 5 //existem 5 palavras a adivinhas
#define HORIZONTAL 'h'
#define VERTICAL 'v'

void imprimeSopa(char sopaLetras[L_MAX][C_MAX]);
int verificaPalavra(char sopaLetras[L_MAX][C_MAX], int lin, int col, char orient);
int verificaPalavraHorizontal(char sopaLetras[L_MAX][C_MAX], int lin, int col);
int verificaPalavraVertical(char sopaLetras[L_MAX][C_MAX], int lin, int col);

main(){
char sopaLetras[L_MAX][C_MAX] = {{'F', 'T', 'H', 'F', 'C', 'M'},{'C', 'F', 'E', 'T', 'H', 'M'},{'D', 'H', 'F', 'C', 'S', 'H'},{'F', 'T', 'T', 'F', 'H', 'T'},{'D', 'S', 'D', 'C', 'T', 'C'},{'S', 'M', 'D', 'T', 'E', 'D'}};
int contaPalavras = MAX_PALAV;
int linha, coluna;
char orientacao;
char continua;

do{
	printf("\nSopa de Letras – Faculdades da UNL\n\n");
	imprimeSopa(sopaLetras);
	printf("\nIntroduza posicao (l,c) e orientacao(%c/%c): ", HORIZONTAL, VERTICAL);
	scanf(" %d %d %c", &linha, &coluna, &orientacao);
	if (verificaPalavra(sopaLetras,linha,coluna,orientacao))
		contaPalavras--;
	else
		printf("ERROU!!!\n");
	/*printf("Vamos continuar? (S/N) \n");
	scanf(" %c", &continua);
	if (continua == 'N')
		contaPalavras = 0;*/
	} while(contaPalavras > 0);
}

void imprimeSopa(char sopaLetras[L_MAX][C_MAX]){
int i, j;

printf("   ");
for(i = 0; i < C_MAX; i++){
	printf("%d ", i);
}

printf("\n\n");

for(i = 0; i < C_MAX; i++){
	printf("%d ", i);

	for(j = 0; j < L_MAX; j++){
		printf(" %c", sopaLetras[i][j]);
	}
	printf("\n");
}
}

int verificaPalavra(char sopaLetras[L_MAX][C_MAX], int lin, int col, char orient){
if (orient == HORIZONTAL)
			return(verificaPalavraHorizontal(sopaLetras, lin, col));
else if (orient == VERTICAL)
			return(verificaPalavraVertical(sopaLetras, lin, col));
return 0;
}

int verificaPalavraHorizontal(char sopaLetras[L_MAX][C_MAX], int lin, int col){
int i;

for(i = L_MAX; i > L_MAX; i++){
	if(lin == "%d" && col == "%d");
		printf("teste"); //isto e so para teste
		return 0;
}

}

int verificaPalavraVertical(char sopaLetras[L_MAX][C_MAX], int lin, int col){



}

o programa neo esta e a entrar no ciclo if que verificaPalavra

agradecia a quem me podesse ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora