Ir para conteúdo
Fórum Script Brasil
  • 0

Ocultar vetor e posteriormente resgatar os valores ocultados


Jefers0n

Pergunta

Boa noite,

Estou com a seguinte duvida, tenho que mostrar na tela 2 vetores de 6 posições p/ cada jogador "um mostra o naipe e o outro a carta, else serão escritos juntos, mas isso é outra histório..." (ex. um jogo, enquanto um joga o outro tem que ter a opção de ocultar as cartas dele), pensei em fazer mais ou menos isso:

int ocultaCartas(int cartasMao[6], char naipeMao[6]) {
int auxCartas[6], i;
char auxNaipe[6];

    if (cartasMao[0] == '#' || naipeMao[0] == '*') {
        printf("Cartas já ocultas!"); break;
    } else
        for (i = 0;i < 6;i++) {
            auxCartas[i] = cartasMao[i];
            cartasMao[i] = '#';
            auxNaipe[i] = naipeMao[i];
            naipeMao[i] = '*';
        }
}

Esta função teoricamente(pois ainda não testei) vai veirificar se as cartas já não estão ocultas, se não tiver vai encher o vetor carta de '#' e o vetor naipe de '*', e guardar as cartas em um vetor auxiliar, mas minha dúvida é, quando o adversário fizer a jogada e eu for usar as cartas denovo tenho que ter a opção de mostrar as cartas ocultas, será que aquele vetor que eu guardei os dados ainda vai estar com eles quando eu precisar? E como eu faço para criar uma outra função que faça o contrário? Que faça um laço tirando os '#' e colocando as cartas que estavam lá....

[]'s

Jeferson Neves.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Você poderia armazenar o AuxCartas[] como static, assim, quando você quisesse os valores de volta, os valores do AuxCartas[] não seriam perdidas. Mas aí tem um problema: o AuxCartas[] é local da função ocultaCartas(), daí você não poderia criar uma função para desocultar as cartas, ou seja: a mesma função que oculta desocultaria. Para isso, você poderia criar um novo parâmetro que especificaria se deseja ocultar ou desocultar o vetor. O que ficaria meio com cara de gambiarra.

Mas ocultar o vetor é realmente necessário, ou você poderia somente escrever os '#' e '*'?

Ps: Você não pode declarar funções como void?

Editado por Luiz Rodrigo
Link para o comentário
Compartilhar em outros sites

  • 0
Você poderia armazenar o AuxCartas[] como static, assim, quando você quisesse os valores de volta, os valores do AuxCartas[] não seriam perdidas. Mas aí tem um problema: o AuxCartas[] é local da função ocultaCartas(), daí você não poderia criar uma função para desocultar as cartas, ou seja: a mesma função que oculta desocultaria. Para isso, você poderia criar um novo parâmetro que especificaria se deseja ocultar ou desocultar o vetor. O que ficaria meio com cara de gambiarra.

Mas ocultar o vetor é realmente necessário, ou você poderia somente escrever os '#' e '*'?

Ps: Você não pode declarar funções como void?

Na verdade vai ser um jogo(trabalho da disciplina) onde duas pessoas jogam, e tem que ter a opção de quando você já jogou poder não mostrar tuas cartas para o outro jogar(claro que eu vou estar na frente da maquina tb, mas é só pra complicar e dificultar o trabalho...hehehe). Mas será cobrado sim o vetor não aparecer(ou melhor ele aparece, mas não pode mostrar realmente o que tem nele, pode ser # # # # # # por exemplo, depois volta as cartas quando for a vez de jogar e de alguma forma eu mandar desocultar...)

Espero que tenha entendido...

[]'s

Jeferson Neves

Link para o comentário
Compartilhar em outros sites

  • 0

cria um vetor de tamanho igual ao número de cartas atuais com uma função de completar ele com # e da printf e usa o mesmo vetor pros 2 jogadores ;D

já q tem q aparecer um vetor q não mostre cartas... cria um q mostre outra coisa.. o objetivo vai ser completado, mas o log de n na base 2 , isso é outra história

Link para o comentário
Compartilhar em outros sites

  • 0
cria um vetor de tamanho igual ao número de cartas atuais com uma função de completar ele com # e da printf e usa o mesmo vetor pros 2 jogadores ;D

já q tem q aparecer um vetor q não mostre cartas... cria um q mostre outra coisa.. o objetivo vai ser completado, mas o log de n na base 2 , isso é outra história

Valeu não tinha pensado nisso, vou tentar fazer...

Não mostrar nada não sei se pode, pois não perguntei a professora, ela falou que tem que ocultar e desocultar, não falou como, mas acho que podia ser tb, deixa sem nada ou mostra as cartas...

Vou tentar fazer algo parecido e depois posto aqui, se bem que vão surgir mais duvidas, ainda não tem no meio do trabalho... :(

[]'s

Jeferson Neves

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...