Ir ao conteúdo

programa e C " palavras cruzadas"


Guerini

Posts recomendados

Postado

Ola pessoal eu to fazendo o 1° semestre de Analise e Desenvolvimento de sistemas, e estou cheia de duvidas com algoritmo. o Professor passou um trabalho para fazer em C usando matriz ou vetor, e eu nem sei por onde começar, se alguem pude me ajuda fico grata.!

vou colocar a questão aqui!

1 Descrição

Um jogo de palavras cruzadas pode ser representado por uma matriz Am×n onde cada posição

da matriz corresponde a um quadrado do jogo, sendo que 0 indica um quadrado branco

e −1 indica um quadrado preto. Um quadrado branco contém uma letra de alguma palavra, já

os quadrados pretos não contém nenhuma letra da palavra cruzada.

Fazer um programa em C que indica na própia matriz A as posições que são início de palavras

horizontais e/ou verticais nos quadrados correspondentes da seguinte forma: substitua

os zeros das posições que são início de palavra horizontal ou vertical por uma numeração consecutiva

de tais posições. Considere que a numeração começa com 1 e aumenta da esquerda

para a direita e de cima para baixo, nesta ordem. Considere ainda que uma palavra deve ter

pelo menos duas letras.

2 Entrada e saída

A entrada contémvários casos de teste. Cada caso de teste consiste emuma linha, contendo

dois números inteiros N e M, representando respectivamente o numero de linhas e de colunas

da matriz com 0 N,M 100. Em seguida haverá N linhas com M valores 0 ou -1 separados

por espaço. O final da entrada é indicado por uma linha contendo N = M = 0.

Para cada um dos casos de teste, seu programa deve imprimir a matriz de saída onde cada

linha de saída é uma linha da matriz. Cada uma das matrizes de saída deve ser separadas das

outras por uma linha em branco.

3 Exemplo de entrada

5 8

0 -1 0 -1 -1 0 -1 0

0 0 0 0 -1 0 0 0

0 0 -1 -1 0 0 -1 0

-1 0 0 0 0 -1 0 0

0 0 -1 0 0 0 -1 -1

3 4

0 -1 0 0

0 0 0 0

0 -1 0 0

0 0

4 Exemplo de saída

1 -1 2 -1 -1 3 -1 4

5 6 0 0 -1 7 0 0

8 0 -1 -1 9 0 -1 0

-1 10 0 11 0 -1 12 0

13 0 -1 14 0 0 -1 -1

1 -1 2 3

4 0 0 0

0 -1 0 0

2

----------------------------------------------------------

Postado

Comece criando o esqueleto do programa:


#include <stdio.h>
#include <stdlib.h>

int main()
{

return 0;
}

Salve e compile pra ver se tá tudo certo.

Depois você lê o problema: Eesse é bem confuso, eu tive que ler umas 3 vezes pra entender... mas basicamente você vai ter que criar uma matriz dinamicamente, ou seja, na hora que o programa já estiver rodando... O usuário vai dizer o tamanho da matriz e as coisas dentro dela.

Então, a primeira coisa a fazer é criar uma interface pro usuário entrar com os dados. Você viu pela entrada que ele primeiro diz o tamanho da matriz, depois pega os dados da matriz, mostra a saída e repete tudo de novo até o tamanho da matriz ser 0 0.


#include <stdio.h>
#include <stdlib.h>

int main()
{
int linhas, colunas;
int palavrasCruzadas[100];

do {
printf("Digite o tamanho da matriz: ");
scanf("%d", linhas);
scanf("%d", colunas);
criarMatriz(palavrasCruzadas, linhas, colunas);
} while(linhas != 0 || colunas !=0);

return 0;
}

void criarMatriz(int matriz[], int L, int C) {
//aqui você faz dois FOR pra preencher a matriz com os dados do usuário
}

Depois você tem que ver como esses dados serão processados... mais uma vez lendo o problema e vendo a saida, você viu que ele quer que você substitua os zeros da matriz se elas forem início de uma palavra...

Então você cria outra função que faz isso...


#include <stdio.h>
#include <stdlib.h>

int main()
{
int linhas, colunas;
int palavrasCruzadas[100];

do {

printf("Digite o tamanho da matriz: ");
scanf("%d", linhas);
scanf("%d", colunas);

criarMatriz(palavrasCruzadas, linhas, colunas);
substituirPalavras(palavrasCruzadas, linhas, colunas);

} while(linhas != 0 || colunas !=0);

return 0;
}

void criarMatriz(int matriz[], int L, int C) {
// aqui você faz dois FOR pra preencher a matriz com os dados do usuário
}

void substituirPalavras(int matriz[], int L, int C) {
// outros dois FOR pra percorrer a matriz
// quando achar um 0, testar se ele pode ser palavra e substituir por 1
// quando achar outro 0, testar de novo e substituir por 2... depois 3, 4, etc...
}

Depois é só criar outra função que imprime a matriz na tela.

Postado

Obrigado, ja deu pra ter uma noção maior do que precisa ser feito, tenho dificuldade de interpretar o problema.

Vou tentar aqui com o que você me passou.

^_^

  • 4 meses depois...
Postado

Boas pessoal, tenho uma duvida semelhante. Quero construir um jogo em que também utilizo uma matriz que possui alguns quadrados em branco e outros de cor preta, os brancos sao os unicos que se podem preencher e tambem é atraves de '1' e 'o' mas tem algumas casas que sao pretas mas nao possuem numeros.

Eu ja tinha feito a matriz, consigo introduzir os valores mas o caso é que eu preciso de ter 2 valores em algumas casas pretas, um no canto superior direito e outro no canto superior esquerdo, alguem me pode dar uma dica?

penso que a grelha do jogo, eu vou construir e dp o utilizador vai busca la mas nao tenho a certeza, guerini podias explicar me como funcionava o teu por favor?

agradeço o tempo e ajuda,

cumprimentos

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!