Jump to content

Atributo de classe


JoaoNascimento
 Share

Recommended Posts

Olá pessoal mais uma vez,

hoje a minha duvida é que tenho estes atributos numa classe:

class JOGO
{
   private:
      string palavra[11];
      int mascara[5];
.........
}

E ao inserir uma palavra de 5 caracteres. O que quero é que me apareça quantas letras tenho na posição certa ou se as tenho trocadas:

Exemplo

C a r r o       

C a r r a        4 certas  0 trocadas

C I N C O

C O N C I      3 certas  2 trocadas

eu uso os seguintes mêtodos:

int JOGO::LetrasCertas(JOGO t, JOGO s, int i)
{
   int ContadorCorrecto;
   int j;
   j=0;
   ContadorCorrecto=0;
   for(j=0;j<5;j++)
   {
      t.mascara[j]=0;
   }
   for(j=0; j<5; j++)
   {
      if(s.palavra[0].c_str()[j]==t.palavra[i].c_str()[j]) //Compara a posição da palavra secreta com a da tentativa
      {
         ContadorCorrecto++;
         t.mascara[j]=1;
      }
   }
   return ContadorCorrecto;
}

int JOGO::LetrasTrocadas(JOGO t, JOGO s, int i)
{
   int ContadorTrocado;
   int j;
   int k;
   k=0;
   j=0;
   ContadorTrocado=0; //JOGADOR JOGADOR
   for(j=0;j<5;j++)
   {
      for(k=0;k<5;k++)
      {
         if(s.palavra[0].c_str()[j]==t.palavra[i].c_str()[k] && t.mascara[j]!=1)
         {
            ContadorTrocado++;
            break;
         }
      }
   }
   return ContadorTrocado;
}

O que está mal, pois as palavras trocadas não aparecem bem, no primeiro caso do exemplo aparecia 4 certas e 4 trocadas! Uso a mascara para validar as posições que já estão correctas.

Ajudem-me... É mesmo urgente

Link to comment
Share on other sites

Tenta fazer debug na função LetrasTrocadas a verificar quais sao os teus valores para a t.mascara.

Provavelmente não serão os que esperas.

Julgo que não vai ser feita uma atribuição de valores a t.mascara fora do escopo da função LetrasCertas.

Para isso precisarias de chamar um membro da classe que ficasse encarregue de o fazer (como t.setMascara(t.mascara) ou t.setValorMascara(j, t.mascara[j]); por exemplo).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.