jogo da forca

1. jogo da forca

caleb silva gomes
calebcsg

(usa Debian)

Enviado em 21/01/2016 - 11:11h

oi pessoal...estou desenvolvendo jogo da forca em linguagem c e não em c++ propriamente falando,estou com uma dificuldade em verificar a letra digitada no vetor da palavra sorteada e se existir ir imprimindo a palavra....não quero que mude totalmente o código, apenas implemente essa parte..

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
int main(){

printf("\t\t***BEM VINDO AO JOGO DA FORCA!.***\n");

char banco[5][20]={//BANCO DE DADOS ONDE ENCONTRA-SE AS PALAVRAS A SEREM SORTEADAS.
"jabuticaba", // MATRIZ DE 5 PALAVRAS(LINHAS),TAMANHO DE MÁXIMO PALAVRAS 20(COLUNAS).
"carteira",
"ferrari",
"dromedario",
"pedreiro"};

char palavra_sort[20];//VETOR PARA ARNMAZENAR A PALAVRA SORTEADA.
int posic_palavra=0;
int i;
char letra[1];
int tam=strlen(palavra_sort);
int chances=6;

srand(time(NULL)); // função sorteio
posic_palavra = rand() % 5;

for(i=0;i<20;i++){
palavra_sort[i]=banco[posic_palavra][i];
}

for(i=0;i<palavra_sort[i];i++){ //substituição palavra sorteada por '-'
palavra_sort[i] = '-';
}
printf("\n%s\n",palavra_sort);

// agora não estou conseguindo fazer a verificação da letra digitada no vetor da palavra sorteada e ir substituindo o '-' pelas letras ate formar a palavra

// obs: estava com dificuldades em comparar vetores




system("pause");
return 0;
}



  


2. Re: jogo da forca

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/01/2016 - 00:40h

O que você quis fazer com o laço controlado da forma abaixo?

for(i=0;i<palavra_sort[i];i++) 


O seu azar é que esse negócio aparentemente vai funcionar, mas só porque as strings são terminadas com o byte nulo e porque suas palavras são curtas, e as letras no ASCII ocupam apenas as posições de 65 em diante (ou 97 em diante, já que você aparentemente está usando apenas letras minúsculas).

De todo modo, é um desperdício copiar a palavra sorteada para palavra_sort e depois sobrescrever os caracteres dessa string com hífens.

Como você está trabalhando com um array fixo de palavras conhecidas, basta você saber o índice da palavra sorteada e consultar se cada letra digita faz parte da palavra oculta ou não. Fazendo assim, você elimina a existência de palavra_sort e pode, no seu lugar, criar um string que represente aquilo que o jogador já descobriu até o momento (por exemplo, se a palavra for casa, na primeira rodada o jogador vai ver “----”; se ele chutar “a”, passa a ver “-a-a”, e assim por diante).


3. Re: jogo da forca

Marcelo Ruan
marceloruan

(usa Linux Mint)

Enviado em 22/01/2016 - 01:17h

Fiz um código aqui simples , ele apenas verifica se a letra digita e em que posição está.

Espero que ajude
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>

int main(void){

char palavra[20]="familia";
char letra;
int i;
int tamanho;
int tentativas=0;
printf("Jogo da forca\n");
while(tentativas<=6){
printf("\nDigite uma letra ");
scanf(" %c",&letra);

tamanho = strlen(palavra);

for(i=0;i<=tamanho;i++){
if(palavra[i]==letra){
printf("A letra %c esta na posicao %d \n",letra,i);
}

}

tentativas++;

}

return(0);
}




Marcelo Ruan
Graduating in Technology in Telematics - IFPB CG
IEEE Student Member
Communications Coordinator in IEEE Student Branch - IFPB CG

Não alcançamos a liberdade buscando a liberdade, mas sim a verdade. A liberdade não é um fim, mas uma consequência.
Leon Tolstoi






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts