Ir para conteúdo

POWERED BY:

Arquivado

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

viciado

programa com string

Recommended Posts

Galera, desde que conheci o C++ acompanho o forum com dicas, tuto é show e agora preciso de um help. Estou com um código rodando no DEV C++ mas ainda falta colocar uma condição para quando a pessoa digitar um caracter errado mais de uma vez, não contar como erro e informar o jogador que o caracter é invalido "digite outro" e também logo no início queria que quando a palavra fosse digitada não aprecesse na tela logo no início. Tem tbem um trecho no código (lá no switch) foi um amigo que ajudou no "case 4 : corpo[3] = '\\';" e no case 6 : corpo[5] = '\\'; porque tem que usar 2 barras? Segue

 

//Bibliotecas

#include <conio.h>

#include <ctype.h>

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

 

//Variáveis Globais

char palavra[65];

char npalavra[65];

char erros[30];

char corpo[7];

int nerros /*NUMERO DE ERROS*/ , nacertos /*NUMERO DE ACERTOS*/, tam /*TAMANHO DA PALAVRA*/;

 

//Protótipo das Funções

void titulo();

void entrada();

void tela();

void mostrapalavra();

 

#define AZUL 3

#define AMARELO 6

#define BRANCO 7

#define NEGRITO 8

#define VERMELHO 4

#define VERDE 10

#define ESCURO 1

#define PRETO 3

 

 

HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); //Função relacionada a cor <windows.h>

 

//Início do Programa

int main()

{

char opt;

do

{

titulo();

entrada();

tela();

printf(" Jogar novamente? (s/n): ");

opt = toupper(getche());

}

while(opt == 'S');

titulo();

printf("\n -------------Pressione qualquer tecla para sair...\n");

getch();

return(0);

}

 

void entrada()

{

int cont;

tam = 0;

printf(" Digite uma palavra (Maximo de 64 caracteres: \n");

gets (palavra);

while(palavra[tam] != 0)

tam++;

nacertos = 0;

nerros = 0;

for(cont = 0; cont < 30; cont++)

erros[cont] = '\0';

for(cont = 0; cont < 65; cont++)

npalavra[cont] = '_';

for(cont = 0; cont < 6; cont++)

corpo[cont] = ' ';

}

 

void titulo()

{

 

system("color 2");

system("cls");

system("cls");

printf(" ===================JOGO DA FORCA==================\n");

printf(" ==================================================\n");

SetConsoleTextAttribute(hConsoleHandle, VERDE);

printf("\n");

}

 

void tela() //Terceira função - Jogo

{

int fimjogo = 0, cont, acertou = 0;

char c;

while(fimjogo == 0)

{

titulo();

mostrapalavra();

printf(" Digite uma letra: ");

c = getch();

for(cont = 0; cont < tam; cont++)

if(toupper© == toupper(palavra[cont]))

{

if(toupper© != npalavra[cont])

{

npalavra[cont] = toupper©;

nacertos++;

}

acertou = 1;

}

if(!acertou)

{

erros[nerros] = toupper©;

nerros++;

switch(nerros)

{

case 6 : corpo[5] = '\\';

case 5 : corpo[4] = '/';

case 4 : corpo[3] = '\\';

case 3 : corpo[2] = '/';

case 2 : corpo[1] = '|';

case 1 : corpo[0] = 'O';

}

}

if((nacertos == tam) || (nerros == 6))

fimjogo = 1;

acertou = 0;

}

titulo();

mostrapalavra();

cont = 0;

while(palavra[cont] != 0)

palavra[cont] = toupper(palavra[cont++]);

if(nacertos == tam)

printf(" PARABENS!! VOCE ACERTOU A PALAVRA ", palavra);

else

printf(" VOCE PERDEU... A PALAVRA ERA ", palavra);

SetConsoleTextAttribute(hConsoleHandle, AZUL);

printf("%s\n", palavra);

SetConsoleTextAttribute(hConsoleHandle, AZUL);

}

 

 

void mostrapalavra()

{

int cont;

SetConsoleTextAttribute(hConsoleHandle, AMARELO);

printf(" /-----\\ %s \n", erros);

printf(" | |\n");

printf(" | %c\n", corpo[0]);

printf(" | %c%c%c\n", corpo[2], corpo[1], corpo[3]);

printf(" | %c %c\n", corpo[4], corpo[5]);

printf(" |\n");

printf(" |");

SetConsoleTextAttribute(hConsoleHandle, AZUL);

for(cont = 0; cont < tam; cont++)

printf(" %c", npalavra[cont]);

printf("\n\n");

}

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.