Ir para conteúdo

POWERED BY:

Arquivado

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

edmursantos

Forca Computador x Computador em C

Recommended Posts

Olá, boa noite a todos!! Estou precisando de uma ajuda para desenvolver um código que nosso professor da faculdade passou como trabalho para nós.

É uma forca que jogue computador contra computador, criando, lendo e alterando arquivos .arq (texto), seguindo uma ordem de instruções que ele passou. Consegui fazer uma parte do programa, mas é muito difícil e não consigo acabar. Gostaria de idéias e como posso programar isso (lembrando q sou iniciante)... Por favor preciso mtao da sua ajuda!! desde já agradeço hehe

Segue o pedaço do codigo que ja fiz:

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

void escreva_palavra(char str[]) // escreve palavra
{
    FILE *arq;
    int i = 0;
    arq=fopen("palavra.arq","w");
    while (str[i]!= '\0')
    {
        putc(str[i],arq);
        i++;
    }
    fclose(arq);
}

void leia_palavra(char str[]) // le palavra
{
    FILE *arq;
    int i = 0;
    arq=fopen("palavra.arq","r");
    while (!feof(arq))
    {
        str[i]= getc(arq);
        i++;
    }
    str[i]= '\0';
    fclose(arq);
}

void escreva_erradas(char c) // escreva palavra errada
{
    FILE *arq; 
    arq=fopen("erradas.arq","a");
    putc(' ',arq);
    putc(c,arq);
    fclose(arq);
}

void leia_erradas(char str[])  // le palavra errada
{
    FILE *arq;
    int i = 0;
    arq=fopen("erradas.arq","r");
    while (!feof(arq))
    {
        str[i]= getc(arq);
        i++;
    }
    str[i]= '\0';
    fclose(arq);
}

void escreva_letra(char c)   // escreve letra
{
    FILE *arq;
    arq=fopen("letra.arq","w");
    putc(c,arq);
    fclose(arq);
}

char leia_letra()  // le palavra
{ 
  FILE *arq;
  arq=fopen("letra.arq","r");
  return  getc(arq);
  fclose(arq);
}

void servidor ()    
{
    int opgrau_dif;
    do {
        printf("Escolha um grau de dificuldade:\n\n1. FACIL   (Palavras ate 5 letras)\n2. MEDIO   (Palavras de 6 a 10 letras)\n3. DIFICIL (Palavras de 11 a 15 letras)\n\n");
        scanf("%d",&opgrau_dif);
        if (opgrau_dif != 1 && opgrau_dif !=2 && opgrau_dif != 3)
            system("cls");
            printf("Opcao incorreta. Digite novamente.\n\n");
        } while (opgrau_dif != 1 && opgrau_dif !=2 && opgrau_dif != 3);
    system("cls");
    if (opgrau_dif == 1)
    {
        char escolhida[16], palavra[16], letra_lida, erradas19;
        int controle, controle_execucao=0, erro=0, aux;
        FILE *arq;
        FILE *arquivo;
        int i, j;
        char palavra5 [10][6] = {"mel","amor","carta","labio","arara","ferro","patio","zebra","amora","sol"};
        i= rand() % 10;
        strcpy(escolhida,palavra5[i]);
        for (j=0; j<strlen(escolhida);j++)
        {
            palavra[j]='_';
        }
        palavra[j] = '\0';
        escreva_palavra (palavra);
        arq=fopen("erradas.arq","w");
        fclose(arq);
        arq=fopen("letra.arq","r");
        fclose(arq);
        printf("Escolhida: %s\n",escolhida);
        printf("Palavra: %s\n",palavra);        
        printf("___________\n");
        printf("  _______ |\n");
        printf("  |      ||\n");
        printf("  |      ||\n");
        printf("  |      ||\n");
        printf("  |     /  \\ \n");
        printf("  |    /    \\ \n");
        printf("  |   /______\\ \n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |\n");
        printf("  |                  %s\n",palavra);
        printf("  |_______________________________\n");
        printf("                                  |\n");
        printf("__________________________________|\n\n");
        getchar();
        letra_lida =leia_letra();
        controle_execucao ++;
        if (controle_execucao >= 1)
        {
            while (erro <12 && strcmp(escolhida,palavra)!=0)
            {

                if (erro==1)
                {
                    printf("Escolhida: %s\n",escolhida);
                    printf("Palavra: %s\n",palavra);
                    
                    //arquivo = fopen("erradas.arq");
                    //fscanf(arquivo,"%s",erradas19);
                    //printf("ERROS: \n",erradas19);
                    //fclose(arquivo);
                    
                    printf("___________\n");
                    printf("  _______ |\n");
                    printf("  |      ||\n");
                    printf("  |      ||\n");
                    printf("  |      ||\n");
                    printf("  |     /  \\ \n");
                    printf("  |    /    \\ \n");
                    printf("  |   /______\\ \n");
                    printf("  |     /  \\   \ \n");
                    printf("  |     \\__/  \ \n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |                  %s",palavra);
                    printf("\n  |_______________________________\n");
                    printf("                                  |\n");
                    printf("__________________________________|\n\n");
                    getchar();
                    letra_lida =leia_letra();
                }
                if (erro==2)
                {
                    printf("Escolhida: %s\n",escolhida);
                    printf("Palavra: %s\n",palavra);
                    
                    
        
                    printf("___________\n");
                    printf("  _______ |\n");
                    printf("  |      ||\n");
                    printf("  |      ||\n");
                    printf("  |      ||\n");
                    printf("  |     /  \\ \n");
                    printf("  |    /    \\ \n");
                    printf("  |   /______\\ \n");
                    printf("  |     /  \\   \ \n");
                    printf("  |     \\__/  \ \n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |\n");
                    printf("  |                  %s",palavra);
                    printf("\n  |_______________________________\n");
                    printf("                                  |\n");
                    printf("__________________________________|\n\n");
                    getchar();
                    letra_lida =leia_letra();
                }
                getchar();
                letra_lida =leia_letra();
                //printf("Letra%c:",letra_lida);
                //if(letra_lida!=-1)//Se a letra não for caracter de fim de arquivo
                
                {
                    controle=0;
                    for (i=0; i<strlen(escolhida); i++)
                    {
                        if (letra_lida==escolhida[i])
                        {
                            palavra[i] = letra_lida;
                            controle = 1;
                        }
                    }
                    escreva_palavra (palavra);
                    
                    if (controle == 0)
                    {
                        escreva_erradas(letra_lida);
                        erro++ ;
                        printf("%d",erro);
                        
                    }
                }
                
                //system("pause");
                system("cls");
        
            }
            if(strcmp(palavra,escolhida)==0)
                printf("Voce acertou!\nA palavra e': %s\n",palavra);
            else
                printf("Voce errou!\nA palavra era: %s\n",escolhida);
        }
    
    }
}

int main ()
{
    int opcao;
    printf(": : F O R C A : :\n\nOla! ");
    do {
    printf("Escolha uma opcao:\n1. SERVIDOR\n2. CLIENTE\n\n");
    scanf("%d",&opcao);
    system("cls");
        if (opcao == 1)
        {
            servidor();

        }
        else
        {            
            if (opcao == 2)
            {
                
                break;
            }
            else
            {
                system("cls");
                printf("Entrada incorreta. Repita opcao.\n\n");
            }
        }
    } while(opcao != 1 && opcao != 2);

       
    //char str[16];
    //gets(str);
    //escreva_palavra (str);
    system("pause");
}
desde ja agradeço a ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo fica + facil você dizer onde está sua duvida, do q a gente tentar adivinhar ok?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.