Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Mateus Nunes

Jogo da forca em c

Recommended Posts

Boa tarde galera. Me deparei com um jogo da forca em C - versão simplificada - e queria tirar algumas dúvidas com quem estiver disposto.

Primeiramente, gostaria de saber como a função strlen funciona. Além disso, acredito que há 5 contadores no algoritmo (life, retorna, points, cont e cont2) e estes em algumas partes aparecem da seguinte forma: retorna++; points++......para quê isso é feito?? Por fim, pergunto se há alguma forma de elaborar uma função que realize esse processamento, de forma que eu possa adicioná-la numa espécie de biblioteca.h e, posteriormente, chamá-la pelo nome na função main() - se a resposta for sim, tem como me mostrar como fica?

 

Obrigado pela força aí!!!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <math.h>
/////// #include "Biblioteca_Projeto.h" [?] EU QUERIA ADICIONAR AQUI E SÓ CHAMAR NA FUNÇÃO MAIN, PELO NOME
main()
{
char word[21]; //Player 1
char gap[21]="-"; //Lacunas
char letra[21];
char erros[21];
char tam;
int life=5; int retorna; int points=0;
int cont=0; int cont2=0;



setlocale(LC_ALL,"portuguese");
printf("Jogador 1, digite a palavra para o Jogador adivinhar: ");
gets(word);
system("cls");

for(cont=0;cont<strlen(word);cont++) // [?] strlen
{
gap[cont]="-";
tam=strlen(word);
}//Fim do 1ºfor

while(life>0)
{
retorna=0;
printf("\n\t%s\n",gap);
printf("\tDigite uma letra: ");
gets(letra);
system("cls");
printf("\n\n\tLetra Digitada: %s\n",letra);
for(cont=0;cont<strlen(word);cont++)
   {
   if(letra[0]==word[cont])
     {
     gap[cont]=word[cont];
     retorna++; ////// [?] o que é o ++, que função está desempenhando nesse caso?
     points++;
     }//Laço do 1º if
   }//Laço do for

if(retorna==0)
{
life--;
if(life==0)
{
printf("\n\tGAME OVER!\n");
printf("\n\tA palavra cera era: %s\n",word);
break;
}
else
{
printf("\n\tVocê errou uma letra. Restam %d vidas\n\n\n",life);
system("pause");
system("cls");
erros[cont2]=letra[0];
cont2++;
}
}
else
{
if(points==tam)
{
printf("\n\tVocê acertou a palavra. Parabéns!\n");
break;
}
else
{
printf("\n\n\tVocê acertou uma letra. Continue assim!\n\n\n");
system("pause");
system("cls");
}
}
}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

strlen() é uma função que recebe um vetor de char como parâmetro e retorna um inteiro que é a quantidade de caracteres contidos nesse vetor (frase ou palavra)

já quando você faz

Citação

inteiro++

é a mesma coisa que

Citação

inteiro += 1

ou

Citação

inteiro = inteiro + 1

 

isso serve para

Citação

inteiro--

também.

 

Quanto a parte da função eu não entendi o que você quis dizer.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Sim, mas qual o objetivo do retorna++ naquela linha, o que ele desempenha??

     

    Vou dar um exemplo de função, porém a que eu necessito deve fazer processamento em um conjunto de caracteres, e a do exemplo faz processamento com números.

     

    Primeiramente, para deixar claro, gostaria de criar uma função que realiza-se algum processamento, de forma que esta fica armazenada em uma biblioteca.h com um certo nome e certos parâmetros. Assim, quando eu quiser utilizá-la, apenas a chamo pelo "nome" na função main()

     

    Isso é uma das exigências do projeto...........segue abaixo o exemplo, note que, em forma de comentário, eu aponto as funções

    (acredito que no caso do projeto - primeira postagem - a função deva ser do tipo char, pois a professora pede que seja realizado um processamento de caracteres na função)

     

    Obrigado pela atenção!!!!!!

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <locale.h>
    #include <math.h>
    #include <conio.h>
    #include "Biblioteca_Projeto.h"
    main()
    {
    float a,b;
    double c;
    int qtd;
    
    setlocale(LC_ALL,"portuguese");
    printf("\t\t\t\tFUNÇÃO AFIM");
            printf("\n\nPara a função do tipo y=ax+b, determine os parâmetros:");
            printf("\n\nDigite o valor de a: ");
            scanf("%f",&a);
            printf("\nDigite o valor de b: ");
            scanf("%f",&b);
            printf("\nInforme o número de pontos, da coordenada x: ");
            scanf("%d",&qtd);
            float mat[qtd][2];
            preenche_mat_x(qtd,mat); ///Função void
            preenche_mat_y(qtd,mat,a,b); ///Função void
            show_mat_pontos(qtd,mat); ///Função void
    }
    
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    //MINHA BIBLIOTECA (SALVA COM O NOME DE Biblioteca_Projeto.h)
    void preenche_mat_x(int qtd, float mat[qtd][2])
    {
    int index;
    
    for(index=0;index<=qtd-1;index++)
    {
    printf("\nEntre com valor real para x%d: ",index+1);
    scanf("%f",mat[index]);
    }
    
    return;
    }
    ///////////////////////////////////////////////////////////////////////////
    void preenche_mat_y(int qtd, float mat[qtd][2], float a, float b )
    {
    int index;
    
    for( index=0;index<=qtd;index++)
    {
    mat[index][1]=a*mat[index][0]+b;
    }
    
    return;
    }
    //////////////////////////////////////////////////////////////////////////////////
    void show_mat_pontos(int qtd, float mat[qtd][2] )
    {
    int index;
    
    system("cls");
    printf("Pontos (x ; y):");
    
    for(index=0;index<=qtd-1;index++ )
    {
    printf("\n\n%dº Ponto: (%.2f ; %.2f)\n",1+index,mat[index][0],mat[index][1]);
    }
    
    return;
    }
    ///////////////////////////////////////////////////////////////////////////////////

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×