main
#include <cstdlib>
#include <iostream>
#include <string>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "forca.h"
using namespace std;
int main(int argc, char *argv[])
{
char letra[2],letraind[27],certa[15];
int inicio=0 , i , a=0, n , c=0, V[15], pos,b,t;
TipoPalavra pal;
strcpy(pal.palavra,"abcde");
for(a=0;a<=14;a++)
{V[a]=-1;}
cout<<"Tente adivinhar a palavra abaixo ";
cout<<"\n"<<endl<<endl;
n= strlen(pal.palavra) ;
for(t=0;t<=26;t++)
{
pos=-1;
if(t==0)
{
for(b=0;b<n;b++)
{
cout<<" ___";
}
cout<<"\n\n Digite uma letra ";
gets(letra);
strcat(letraind,letra);
t++;
}
if(t>0) //a!=0
{
inicio=0;
while((inicio<n)&&(inicio>=0))
{
pos=RetornaProxPosLetra(pal,letra,inicio); // nao esta axano o desejado
if(pos>=0)
{
strncpy(certa+c,letra,1); //Guarda letra e sua posiçao
V[c]=pos;
c=c+1;
}}
system("CLS");
if(pos<=0)
{
cout<<"Essa nao foi uma boa escolha. Continue tentando";
cout<<"\n\n Tente adivinhar a palavra abaixo ";
cout<<"\n\n\n";
for(b=0;b<=n-1;b++)
{
if(V[c]==-1)
{
cout<<" ___";}
else
{cout<<" "<<certa[c];}
}
}
if(pos>=0)
{
cout<<"Otima escolha!!!";
for(b=0;b<=n-1;b++)
{
if(V[c]==-1)
{
cout<<" ___";}
else
{cout<<" "<<certa[c];}
}
}
cout<<"\n\n Digite uma letra ";
gets(letra);
strcat(letraind,letra);
t++;
}
system("PAUSE");
return EXIT_SUCCESS;
}
}
----------
.h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char palavra[15];}
TipoPalavra;
int RetornaProxPosLetra( TipoPalavra pal, char letra[2], int& inicio);
------------
.c
#include "forca.h"
int RetornaProxPosLetra( TipoPalavra pal, char letra[2], int& inicio)
{
int i, a=-1, b[15], z=0;
b[0]=-1;
for(i=inicio;i<=14;i++) // Verificara se tem a letra na palavras de
{
a=-1;
// comparando posiçao i com a letra
a=strncmp(pal.palavra +i ,letra,1);
if(a==0)
{
b[z]=i; // i sera a posiçao q ele encontrou a letra
z++;
inicio=i+1;
}
}
return b[0];
}