Jump to content
Sign in to follow this  
Pablo Goulart

Como da "zoom" no jogo ?

Recommended Posts

Estou desenvolvendo um jogo de guerra e plataforma, mas quando compilo o programa o personagem e o cenário ficam muito pequenos, então eu gostaria de saber com que deixar o cenário e o personagem mais "perto" tipo super mario bros do nintendinho.

 

#include <allegro5\allegro.h>
#include <allegro5\allegro_native_dialog.h>
#include <allegro5\allegro_image.h>
const float FPS = 60;
const int SCREEN_W = 850;
const int SCREEN_H = 640;
const int BLUE = 64;
enum TECLADO { KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT };
int main()
{
//_______VARIAVEIS DO JOGO________
ALLEGRO_DISPLAY *display = NULL;
ALLEGRO_BITMAP *Blue = NULL;
ALLEGRO_BITMAP *Cenario = NULL;
ALLEGRO_EVENT_QUEUE *event_queue = NULL;
ALLEGRO_TIMER *timer = NULL;
float bouncer_x = SCREEN_W / 2.0 - BLUE / 2.0;
float bouncer_y = SCREEN_H / 2.0 - BLUE / 2.0;
bool key[4] = { false, false, false, false };
bool redraw = true;
bool doexit = false;
//________INICIALIZAÇÃO DO ALLEGRO 5__________
if (!al_init()) {
al_show_native_message_box(display, "Error", "Error", "Failed to initialize allegro!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
return 0;
}
if (!al_init_image_addon()) {
al_show_native_message_box(display, "Error", "Error", "Failed to initialize al_init_image_addon!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
return 0;
}
//al_set_new_display_flags(ALLEGRO_FULLSCREEN);
display = al_create_display(800, 600);
if (!display) {
al_show_native_message_box(display, "Error", "Error", "Failed to initialize display!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
return 0;
}
Blue = al_load_bitmap("Blue.bmp");
if (!Blue) {
al_show_native_message_box(display, "Error", "Error", "Failed to load image!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
al_destroy_display(display);
return 0;
}
Cenario = al_load_bitmap("Cubo.bmp");
if (!Cenario) {
al_show_native_message_box(display, "Error", "Error", "Failed to load image!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
al_destroy_display(display);
return 0;
}
event_queue = al_create_event_queue();
if (!event_queue) {
al_show_native_message_box(display, "Error", "Error", "Failed to create event_queue!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
al_destroy_display(display);
return 0;
}
timer = al_create_timer(3.0 / FPS);
if (!timer) {
al_show_native_message_box(display, "Error", "Error", "failed to create timer!",
NULL, ALLEGRO_MESSAGEBOX_ERROR);
al_destroy_display(display);
return 0;
}
al_set_target_bitmap(al_get_backbuffer(display));
//______INSTALAÇÃO________
al_install_keyboard();
//________REGISTRO___________
al_register_event_source(event_queue, al_get_display_event_source(display));
al_register_event_source(event_queue, al_get_timer_event_source(timer));
al_register_event_source(event_queue, al_get_keyboard_event_source());
al_flip_display();
al_start_timer(timer);
//_________LOOP PRINCIPAL__________
while (!doexit)
{
ALLEGRO_EVENT ev;
al_wait_for_event(event_queue, &ev);
if (ev.type == ALLEGRO_EVENT_TIMER) {
if (key[KEY_UP] && bouncer_y >= 4.0) {
bouncer_y -= 4.0;
}
if (key[KEY_DOWN] && bouncer_y <= SCREEN_H - BLUE - 4.0) {
bouncer_y += 4.0;
}
if (key[KEY_LEFT] && bouncer_x >= 4.0) {
bouncer_x -= 4.0;
}
if (key[KEY_RIGHT] && bouncer_x <= SCREEN_W - BLUE - 4.0) {
bouncer_x += 4.0;
}
redraw = true;
}
else if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) {
break;
}
else if (ev.type == ALLEGRO_EVENT_KEY_DOWN) {
switch (ev.keyboard.keycode) {
case ALLEGRO_KEY_W:
key[KEY_UP] = true;
break;
case ALLEGRO_KEY_S:
key[KEY_DOWN] = true;
break;
case ALLEGRO_KEY_A:
key[KEY_LEFT] = true;
break;
case ALLEGRO_KEY_D:
key[KEY_RIGHT] = true;
break;
}
}
else if (ev.type == ALLEGRO_EVENT_KEY_UP) {
switch (ev.keyboard.keycode) {
case ALLEGRO_KEY_W:
key[KEY_UP] = false;
break;
case ALLEGRO_KEY_S:
key[KEY_DOWN] = false;
break;
case ALLEGRO_KEY_A:
key[KEY_LEFT] = false;
break;
case ALLEGRO_KEY_D:
key[KEY_RIGHT] = false;
break;
case ALLEGRO_KEY_ESCAPE:
doexit = true;
break;
}
}
if (redraw && al_is_event_queue_empty(event_queue)) {
redraw = false;
al_clear_to_color(al_map_rgb(255, 255, 255));
al_draw_bitmap(Cenario, 0, 0, 0);
al_draw_bitmap(Blue, bouncer_x, bouncer_y, 0);
al_flip_display();
}
}
while (1);
//________DESTRUIR_________
al_destroy_display(display);
al_destroy_bitmap(Blue);
al_destroy_bitmap(Cenario);
al_destroy_event_queue(event_queue);
al_destroy_timer(timer);
return 0;
}

Share this post


Link to post
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
Sign in to follow this  

  • Similar Content

    • By sudden
      Olá alguém que esteja lendo isso, tem dias que eu não consigo rodar esse algoritmo certo, não sei mais o que eu faço, nao sou nenhum desenvolvedor nem nada, tô no 1 semestre
      #include <stdio.h> #include <stdlib.h> //Inicio Structs struct telefones{ char numfixo[15]; char celular[16]; }; struct clientes{ double cpf; int codcliente; struct telefones t; char nome[30]; char sexo; }; struct produtos{ char nomeprod[20]; int codigoproduto; float valor; char modelo [10]; }; struct carrinhos{ struct clientes cliente[5]; struct produtos produto[5]; int quantidade; float subtotal; float desconto; // porcentagem float total; }; struct modelos{ char marca [20]; char modelo [20]; }; /////Fim Structs //Inicio Fun��o void cadastrarCliente(struct clientes cliente[50], int cont); void mostrarCliente(struct clientes cliente[50]); void mostraMenuPrincipal(); void mostrarProduto(struct produtos produto[50]); void cadastrarProduto(struct produtos produto[50],int contp); void efetuarCompra(struct carrinhos carrinho[50],struct clientes cliente[3],struct produtos produto[10]); void ordenarCliente(struct clientes cliente[50]); // Inicio Main void main(int argc, char *argv[]) { int resposta,contp=0,cont=0,voltar=0; //cont e o contador do cliente, contp e do produto. struct produtos produto[50]; struct clientes cliente[50]; struct carrinhos carrinho[50]; struct modelos modelo[50]; ////////////inicio declarando structs para ele ter oque mostrar//////////////////////////////////// ///////////////////Ira direcionar o usuario no menu /////////////////////// do{ mostraMenuPrincipal(); scanf("%d", &resposta); switch(resposta) { case 1: cadastrarCliente(cliente, cont); cont=cont+1; //agora a proxima vez que for cadastrar um cliente, o indice vai ser um apos o anterior. system("pause"); break; case 2: cadastrarProduto(produto,contp); contp=contp+1; system("pause"); break; case 3: mostrarCliente(cliente); system("pause"); break; case 4: mostrarProduto(produto); system("pause"); break; case 5: efetuarCompra(carrinho,cliente,produto); system("pause"); break; case 6: ordenarCliente(cliente); contp=contp+1; break; default: exit(0); } }while(1); } ////////////////////////print menu /////////////////////////////////////////// void mostraMenuPrincipal(){ system("cls"); printf("==========================================================\n"); printf("1 - CADASTRAR CLIENTE\n"); printf("2 - CADASTRAR PRODUTO\n"); printf("3 - LISTA DE CLIENTES\n"); printf("4 - LISTA DE PRODUTOS\n"); printf("5 - EFETUAR VENDA\n"); printf("0 - SAIR DO MERCADO DIGITAL\n"); printf("==========================================================\n"); printf("Digite sua opcao: "); } ////////////////////////print cadastrar cliente /////////////////////////////////////////// void cadastrarCliente(struct clientes cliente[50],int cont){ system("cls"); printf("=======================================================\n"); printf("-----------------CADASTRAR CLIENTE: %d-----------------\n", cont+1); printf("=======================================================\n\n\n"); printf("AVISO! Digite o CPF da forma original com ponto e tra�os\n\n"); printf("CPF: "); fflush(stdin); //limpa o buffer scanf("%f",&cliente[cont].cpf); printf("NUM FIXO: "); fflush(stdin); scanf("%d", &cliente[cont].t.numfixo); printf("CELULAR: "); fflush(stdin); scanf("%d", &cliente[cont].t.celular); printf("NOME: "); fflush(stdin); gets(cliente[cont].nome); printf("DATA NASCIMENTO: "); fflush(stdin); cliente[cont].codcliente=cliente[cont].cpf/100000; printf("\n==========================================================\n"); printf("O CODIGO DO CLIENTE GERADO E: %d",&cliente[cont].codcliente); printf("\n"); //Printa o cliente que foi cadastrado printf("\nCPF: %d",cliente[cont].cpf); printf("\nNUM FIXO: %d",cliente[cont].t.numfixo); printf("\nCELULAR: %d",cliente[cont].t.celular); printf("\nNOME: %s",cliente[cont].nome); printf("\n=================================================\n"); } ////////////////////////print listar cliente /////////////////////////////////////////// void mostrarCliente(struct clientes cliente[50]){ int repet=0; printf("================================================\n"); printf("----------------- LISTAR CLIENTE -----------------\n"); printf("================================================\n"); for(repet=0;repet<=2;repet++){ printf("\nCPF: %d",cliente[repet].cpf); printf("\nNUM FIXO: %d",cliente[repet].t.numfixo); printf("\nCELULAR: %d",cliente[repet].t.celular); printf("\nNOME: %s",cliente[repet].nome); printf("\nCODIGO DO CLIENTE: %d\n",cliente[repet].codcliente); } } ////////////////////////print cadastrar produto /////////////////////////////////////////// void cadastrarProduto(struct produtos produto[50],int contp){ printf("=================================================\n"); printf("-----------------CADASTRAR PRODUTO: %d-----------------\n", contp+1); printf("=================================================\n"); printf("CODIGO DO PRODUTO: \n"); scanf("%d",&produto[contp].codigoproduto); printf("\nNOME DO PRODUTO: "); fflush(stdin); gets(produto[contp].nomeprod); printf("\nMARCA: "); (stdin); printf("\nMODELO: "); fflush(stdin); printf("\nVALOR: "); fflush(stdin); scanf("%f",&produto[contp].valor); //agora printar produto printf("\nCODIGO DO PRODUTO: %d\n",produto[contp].codigoproduto); printf("\nNOME DO PRODUTO: %ss\n",produto[contp].nomeprod); printf("\nVALOR DO PRODUTO: R$ %0.2f\n",produto[contp].valor); printf("\nMODELO DO PRODUTO: %s", produto[contp].modelo); } ////////////////////////print listar produtos /////////////////////////////////////////// void mostrarProduto(struct produtos produto[50]){ int repet; printf("================================================\n"); printf("----------------- LISTAR PRODUTO -----------------\n"); printf("================================================\n"); for(repet=0;repet<=9;repet++){ printf("\n\nCODIGO DO PRODUTO: %d",produto[repet].codigoproduto); printf("\nNOME DO PRODUTO: %s",produto[repet].nomeprod);543; printf("\nVALOR DO PRODUTO: R$ %0.2f\n\n",produto[repet].valor); } } //pode ser de haja erro na compra void efetuarCompra(struct carrinhos carrinho[50],struct clientes cliente[3],struct produtos produto[10]){ int buscacliente,x; int buscaprod,buscaprod2,buscaprod3; int quantidade,quantidade2,quantidade3; float total,total2,total3; float totalum,todototal,cupom,desc; float fimtotal; mostrarCliente(cliente); printf("\n\nDigite o codigo do cliente: "); scanf("%d",&buscacliente); for(x=0;x<=50;x++){ int y; if(cliente[x].codcliente==buscacliente){ y=1; } if(y==1){ buscacliente=x; y=51; } } system("cls"); mostrarProduto(produto); printf("\ncarrinho do cliente %s",cliente[buscacliente].nome); printf("\ndigite o codigo do produto 1: "); scanf("%d",&buscaprod); for(x=0;x<=50;x++){ int y; if(produto[x].codigoproduto==buscaprod){ y=1; } if(y==1){ buscaprod=x; y=51; } } printf("\ndigite a quantidade: "); scanf("%d",&quantidade); total = quantidade * produto[buscaprod].valor; //REPETICAO///////////////////// printf("\ndigite o codigo do produto 2: "); scanf("%d",&buscaprod); for(x=0;x<=50;x++){ int y; if(produto[x].codigoproduto==buscaprod){ y=1; } if(y==1){ buscaprod=x; y=51; } } printf("\ndigite a quantidade: "); scanf("%d",&quantidade); total2 = quantidade * produto[buscaprod].valor; //REPETICAO///////////////////// printf("\ndigite o codigo do produto 3: "); scanf("%d",&buscaprod); for(x=0;x<=50;x++){ int y; if(produto[x].codigoproduto==buscaprod){ y=1; } if(y==1){ buscaprod=x; y=51; } } printf("\ndigite a quantidade: "); scanf("%d",&quantidade); total3 = quantidade * produto[buscaprod].valor; //system("pause"); printf("digite o cupom de desconto: "); scanf("%f", &cupom); todototal = total + total2 + total3; desc = todototal * (cupom / 100); fimtotal = todototal - desc; printf("Total: R$ %0.2f\n", todototal); printf("Valor do Desconto: R$ %0.2f\n", desc); printf("Valor total e R$ %0.2f\n", fimtotal); system("pause"); } void ordenarCliente(struct clientes cliente[50]){ int i,b; int codigotemp,cpftemp,fixotemp,celulartemp,datanasctemp; char nometemp; printf("Organizando lista...\n"); for(i=0;i<=3;i++){ for(b=0;b<=3;b++){ if(cliente[b].codcliente>cliente[b+1].codcliente){ //valores para variaveis temporarias printf("transferindo valores para variaveis temporarias...\n"); codigotemp=cliente[b].codcliente; fixotemp=cliente[b].t.numfixo; celulartemp=cliente[b].t.celular; //strcpy(nometemp , cliente[b].nome); nometemp=cliente[b].nome; cpftemp=cliente[b].cpf; printf("variaveis temporarias transferidas.\n"); //fim da transferencia de valores para variaveis temporarias //fazer os valores de indice b receber o valor do indice da struct do indice seguinte printf("cliente %d recebendo valores do cliente... %d\n",b,b+1); cliente[b].codcliente=cliente[b+1].codcliente; strcpy(cliente[b].nome , cliente[b+1].nome); cliente[b].cpf=cliente[b+1].cpf; printf("cliente %d recebeu valores do cliente %d\n",b,b+1); //fim da transferencia de valores do segundo para o primeiro indice //inicio dE transferencia de valores do primeiro indice para o segundo indice printf("cliente %d recebendo valores das variaveis temporarias...\n",b+1); cliente[b+1].codcliente=codigotemp; printf("recebeu codigo do cliente.\n"); //cliente[b+1].nome=nometemp; strcpy(cliente[b+1].nome,nometemp); //sprintf(cliente[b+1].nome,nometemp); printf("recebeu nome\n"); cliente[b+1].cpf=cpftemp; printf("recebeu cpf\n"); printf("cliente %d recebeu valores das variaveis temporarias\n",b+1); printf("---- ---- ---- ---- "); } } } printf("Operacao concluida.\n"); }  
    • By DanielF
      Pessoal Eu Recentemente estava fazendo um gerador de qr-code, e preciso criar um botão que quando a pessoa clique apareça para poder baixar/fazerdownload da imagem gerada, pode me ajuda? to preso nisso faz tempo, e se puderem podem Organizar o codigo para mim? 
       
       
       
       
       
       
       
      <!DOCTYPE html>
      <html>
      <head>
          <title>QR-Code</title>
          <style type="text/css">
              #qrcode {
                  border: 1pt solid gray;
                  display: inline-block;
              }
          </style>
      </head>
      <body>
          <center>
              <input type="text" name="qrtexto" id="qrtexto" onkeypress="gerarqr();" onkeyup="gerarqr();"><br>
              <br>
              <button onclick="gerarqr();" on>Gerar</button>
              <button onclick="limpar();" on>Limpar</button>
          </center>
          <br>
          <br>
      <center>
          <div id="qrcode"></div>
      </center>
      <br>
      <center>
      <button onclick="baixar();">Baixar (Em Breve)</button>
      </center>
      <script src="qrcode.min.js"></script>
      <script>
          qrcode.innerHTML="<img src='limpo.png'>";
          function gerarqr(){
      var qrcode=document.getElementById('qrcode');
      qrcode.innerHTML=" ";
      var texto=document.getElementById("qrtexto").value;
          var qrcodee = new QRCode(qrcode, {
          text: texto,
          width: 300,
          height: 300,
          colorDark : "#000000",
          colorLight : "#ffffff",
          correctLevel : QRCode.CorrectLevel.H
      });
      }
      function limpar(){
      qrcode.innerHTML="<img src='limpo.png'>";
      }
      function baixar() {
      }
      </script><br><br><br><br><br><br><br>
      <h6 align="center">Feito por Itz_Topz</h6>
      </body>
      </html>
    • By edmin
      Olá pessoal, preciso de uma ajuda como seguinte, desde já, agradeço por qualquer ajuda...
      Pergunta: 
      Dado um arquivo 'ips.txt' com uma lista de endereços, o programa deve dar um ping para cada ip/domínio cadastrado. A linha contendo os resultados (mínimo, máximo, média)deve ser salva em arquivo 'log_data_hora.txt'.
      ips.txt
      www.claro.com.br;Servidor Claro
      www.colombo.com.br;Servidor Colombo
      www.renner.com.br;Servidor Renner
      www.gmail.com.br;Servidor Email Google
       
      tenho o seguinte código:
       
      import os from datetime import datetime def titulo(texto): print() print(texto) print('\033[7;97;40m-\033[m'*40) ###################################### def listar(): print('\033[7;97;40mListagem de IPs\033[m') print('\033[7;97;40m=\033[m'*72) arq = open('ips.txt', 'r') num = 0 linha = arq.readline() print('\033[7;97;40mNº .: IP/Dominio ...............: Cliente/Serviço ..................: \033[m') while linha != '': num = num + 1 partes = linha.split(';') print(f'\033[7;97;40m {num:3} {partes[0]:30s} {partes[1][:-1]}\033[m') linha = arq.readline() arq.close() print('\033[7;97;40m-\033[m'*72) ''' funcao que recebe um ip como parametro o tempo medio de resposta de um ping para este ip ou -1, caso erro ''' def ver_media(ip): dados = os.popen('ping '+ ip) # executa um comando no sistema operacional media = '' #find: retorna a posicao da string #(se nao encontrar retorna 0) for linha in dados: if linha.find('M‚dia') >= 0: posicao = linha.rfind('=') mediams = linha[posicao+1:] ms = mediams.rfind('ms') media = mediams[0:ms] if media == '': return -1 else: return int(media) def testar(): titulo('\033[7;97;40mTestando IPs Cadastrados\003[m') print('\033[7;97;40mIP/Domínio............ Tempo(ms)\033[m') print('\033[7;97;40m-\033[m'*40) arqLog = open('logs.txt', 'a') #salva em arquivo cada teste arq = open('ips.txt', 'r') linha = arq.readline() while linha != '': partes = linha.split(';') tempo = ver_media(partes[0]) funcao = ver_media(partes[1]) agora = datetime.now() dia = agora.strftime('%d/%m/%Y') hora = agora.strftime('%H:%M:%S') print(f'\033[7;97;40m{partes[0]:25s} {tempo}\033[m') arqLog.write(partes[0]+';'+str(tempo)+';'+dia+';'+hora+'\n') linha = arq.readline() arq.close() arqLog.close() #################################################### def logs(): titulo('\033[7;97;40m Listagem de Logs \033[m') arq = open('logs.txt', 'r') print('\033[7;97;40mNº..: IP / Dominio............: Média (ms): Dia do accesso..: Hora..:\033[m') num = 0 linha = arq.readline() while linha != '': num = num + 1 partes = linha.split(';') ip = str(partes[0]) tempo = str(partes[1]) dia = str(partes[2]) hora = str(partes[3]) print(f'\033[7;97;40m{num:3d} {ip:30s} {tempo:3s} {dia:17s} {hora} \033[m', end='') linha = arq.readline() arq.close() print('-'*43) print('\033[7;97;40m -> Se o tempo em ms, for igual a\033[m \033[1;31m-1\033[m,\033[7;97;40m\n' ' o host não está respondendo\033[m') return ######################### programa principal while True: print('\033[7;97;40m=\033[m' * 43) print('''\033[3;30;44m#### Selecione uma Opção: ####\033[m \033[7;97;40m 1. Listar Ips 2. Testar 3. Log de testes 4. Finalizar \033[m\n ''') print('\033[7;97;40m=\033[m' * 43) opcao = int(input('\033[3;30;44mDigite sua opção:\033[m ')) if opcao == 1: listar() elif opcao == 2: testar() elif opcao == 3: logs() elif opcao == 4: calcula() elif opcao == 5: print('\033[1;30mPrograma Finalizado pelo Usuário!!!\n' '==//==//==//==//==//==//==//==//==//\033[m') exit() else: print('\033[1;31mOps...\n' ' Opção Inválida!!!\033[m') break  
    • By heenrique
      Bom Dia Prezados!
       
      estou realizando o desenvolvimento de um sistema multi empresas no ao acessar ira pedir um código, ate a parte do código tudo OK, apos passar esse código vai para um tela de login onde cada meu sistema é ligado com o banco de dados do sistema (é um sistema padrão)do cliente ate aqui OK. gostaria de limitar a quantidade de acesso a esse código, ex empresa 1 contratou código com 3 acessos, empresa 2 contratou 1 acesso, alguém tem um dica ou um outro método para realizar esse controle ?
    • By Marcosdev
      Estou começando na programação e tenho algumas dúvidas sobre esse código do jogo da forca:
       
      #include <iostream>
      #include <stdlib.h>
      using namespace std;
       
      int main() {
          char entrada[21]; //Palavra secreta
          char letra[1]; //Letra que a pessoa digitou
          char letras[30]; //Letras
          char secreta[21]; //A letra certa e sua posição
          int tam; //O tamanho da palavra vai ser igual a ENTRADA
          int i; //(indice) Necessario pq vai usar array
          int chances; // Quando acabar elas acaba o jogo
          int acertos; // O numero de acertos equivale ao TAM
          bool verificacao; // Verifica se a pessoa digitou uma letra certa ou errada
          string dica;
          chances=6;
          tam=0;
          i=0;
          verificacao=false;
          acertos=0;

          cout << "O que seu adversario vai adivinhar? " << "\n";
          cin >> entrada;
      //comando limpar tela
          system("cls");

          cout << "Dica: ";
          cout << dica;
          cin >> dica;
      // O indice vai percorrer ENTRADA até o /0 (enter) pra verificar se tá certo e a posição
      //Char de arrays devem sempre terminar em /0
          while(entrada != '\0') {
              i++; // O i vai percorrer a "entrada" de um por um,e que ainda não é o /0
              tam++; // Cada palavra certa vai adicionar +1 em TAM, desde que i não seja o enter
          }
      //Vou preencher a "entrada" com asteristicos e cada palavra certa vai ser -1 asteristico
          for(i=0 ; i<21 ; i++) {
               //Enquanto i for menor que 21, i de secreta vai aparecer com *
          }
      //Enquanto o jogador tiver chances e acertos diferente de tam, irá aparecer as chances e palavras acertadas na tela
      inicio:
          while((chances > 0)&&(acertos < tam)){
              cout << "Chances Restantes: " << chances << "\n";
              cout << "Palavra Secreta: ";
              for(i=0 ; i<tam ; i++) {
                  cout << secreta;
              }
      //O jogador vai digitar
              cout << "\n\n" << "Digite uma letra: ";
              cin >> letra[0]; //Armazenar na posição 0
              // Se já tiver usado a letra, goto volta pro o inico
              for(i=0 ; i<tam ; i++){
                  if(letras == letra[0]) {
                      system("cls");
                      cout << "\nLetra ja usada! \n";
                      goto inicio;
                  } else {
                      letras=letra[0];
                  }
              }
              for(i=0 ; i<tam ; i++) {
                  if(entrada==letra[0]) {
                      verificacao=true;
                      // A letra dá posição vai ser copiada para secreta se for certa
                      secreta=entrada;
                      acertos++; // incrementa o total de acertos
                  }
              }
      //Se acerto for igual a falso "not acerto = !acerto" diminui o numero de chances
              if(!verificacao) {
                  chances--;
              }
              verificacao=false;
              system("cls");
              if(verificacao=false) {
                  system("cls");
                  cout << letra[0];
              }
          }
          
          if(acertos==tam) {
              cout << "O jogador ganhou! ";
          } else {
              cout << "O jogador perdeu! ";
          }
          system("pause");
          return 0;
      }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.