Jump to content
Fórum Script Brasil

Search the Community

Showing results for tags 'jogodaforca'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 2 results

  1. Galera, esse é um script de um jogo da forca com dois jogadores na linguagem C. Porém eu estou com um pequeno problema: o Jogador 2 tem 5 chances para acertar a palavra proposta pelo Jogador 1, porém o programa só está rodando 4 chances. Gostaria de saber se alguém pode identificar o erro e, se possível, me indicar uma solução. Desde já agradeço <3 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main(){ char palavra[50], jogador1[50], jogador2[50], espaco[50]="-", erros[50]=" ", tamanho, tamanho2, letra[50], tentativa[50]; int chances=5, caractere, caractere2=0, acertos=0, retorna; printf("Antes de começarmos, pedimos para que, caso não tenha lido as\n" "instruções na seção 'Como jogar', feche o programa, leia-as e,\n" "em seguida, volte para modo multiplayer. Caso já tenha lido, de-\n" "sejamos um bom jogo aos jogadores!\n\n" "Tecle 'v' para continuar..."); while(getchar() != 'v'); system("clear"); printf("Digite o seu nome, Jogador 1: "); scanf("%s",&jogador1); printf("Digite o seu nome, Jogador 2: "); scanf("%s",&jogador2); system("clear"); printf("Sejam bem vindos ao Jogo da Forca, %s e %s!!\n" "\nTecle 'v' para continuar...",jogador1, jogador2); while(getchar() != 'v'); system("clear"); printf("%s, digite a palavra para o/a %s acertar: ",jogador1, jogador2); scanf("%s",&palavra); system("clear"); ///---------------------------------------------------------------------------------------------------------------------------------------------------- ///----------A PARTIR DAQUI COMEÇA O CÓDIGO LÓGICO. OS CÓDIGOS ACIMA ERAM APENAS AS APRESENTAÇÕES E AS PRIMEIRAS ENTRADAS--------------------------------------------- ///---------------------------------------------------------------------------------------------------------------------------------------------- ///---------------------------------------------------------------------------------------------------------------------------------------------- ///A FUNÇÃO STRLEN() É A RESPONSÁVEL PELOS TESTES PARA VER SE A LETRA DIGITADA PELO JOGADOR 2 ESTÁ NO VETOR 'PALAVRA'. ///CRIAMOS UMA VARIÁVEL 'TAMANHO' E IGUALAMOS ELA AO STRLEN(PALAVRA), ASSIM, OS TESTES SÓ IRÃO TERMINAR QUANDO A ÚLTIMA ///LETRA FOR TESTADA E ENQUANTO TODAS NÃO FOREM ACERTADAS for(caractere=0; caractere<strlen(palavra); caractere++) espaco[caractere] = '-'; tamanho = strlen(palavra); ///----------------------------------------------------------------------------------------------------------------------------------------------------- ///AQUI COMEÇAMOS O LAÇO WHILE QUE VAI ATÉ O FINAL DO PROGRAMA. NO CASO, ELE É CONTROLADO PELO NÚMERO DE CHANCES QUE O JOGADOR 2 ///AINDA TEM PARA ACERTAR A PALAVRA ///O PRIMEIRO PRINTF IMPRIME O VETOR 'ESPACO', CORRESPONDENTE AO NÚMERO DE LETRAS DIGITADAS PELO JOGADOR 1 ///O SEGUNDO PRINTF PEDE PARA QUE O JOGADOR 2 DIGITE UMA LETRA, QUE POR SUA VEZ SERÁ TRABALHADA DENTRO DO LAÇO WHILE ///O TERCEIRO PRINTF É UMA ESPÉCIE DE VETOR, QUE POR SUA VEZ GUARDA E IMPRIME AS LETRAS INCORRETAS DIGITADAS PELO JOGADOR 2 while(chances>0){ retorna=0; printf("\n\tAinda restam: %d chances",chances); if(chances<0){ system("clear"); printf("\n\tSuas chances acabaram"); } printf("\n\tLetras digitadas: %s\n",erros); printf("\n%s\n",espaco); printf("%s, digite uma letra: ",jogador2); scanf("%s",&letra); ///------------------------------------------------------------------------------------------------------------------------------------------------------ ///ASSIM COMO NO PRIMEIRO FOR, NESTE ESTAMOS COMPARANDO A LETRA DIGITADA PELO JOGADOR 2 COM AS LETRAS PRESENTES NO VETOR PALAVRA, PORÉM ///CASO A LETRA ESTEJA DENTRO DO VETOR 'PALAVRA', ELA IRÁ SE ENCAIXAR NO VETOR 'ESPACO'. ///FIZEMOS COM QUE A VARIAVEL 'RETORNA' AUMENTE PARA QUE ASSIM, ELA não DIMINUA NO PROXIMO LAÇO for(caractere=0; caractere<strlen(palavra); caractere++){ if(letra[0]==palavra[caractere]){ espaco[caractere] = palavra[caractere]; retorna++; acertos++; } } ///------------------------------------------------------------------------------------------------------------------------------------------------------- ///--------------------------O IF A SEGUIR SO SERA REALIZADO CASO O PLAYER 2 ERRE A LETRA-------------------------------------------------------- ///NESTE CASO, CASO O JOGADOR 1 ERRE A LETRA, A VARIAVEL 'CHANCES' IRÁ DIMINUIR E, CASO AINDA TENHA CHANCES, A LETRA DIGITADA ///VAI PARA O VETOR 'ERROS', CASO CONTRÁRIO ELE AINDA TERÁ UMA ÚLTIMA CHANCE DE ACERTAR A PALAVRA POR COMPLETO if(retorna==0 || (chances==5 || chances==4 || chances==3 || chances==2 || chances==1)){ chances--; if(chances==0){ printf("\n%s, suas chances acabaram, mas agora você tem a chance\n" "de acertar a palavra por completo, digite-a aqui: ",jogador2); scanf("%s",&tentativa); tamanho2 = strlen(tentativa);///AQUI CRIAMOS A VARIÁVEL 'TAMANHO2' PARA FAZER UM PONTE COM A PALAVRA ESCOLHIDA E A ///TENTATIVA DE ACERTO POR PARTE DO JOGADOR 2 if(tamanho2==tamanho){ printf("\n%s, VOCÊ ACERTOU A PALAVRA!! VOCÊ VENCEU A RODADA!!!\n",jogador2); printf("\nA palavra era: %s\n",palavra); break; } else{ printf("\n\n%s, você errou a palavra. %s, VOCÊ VENCEU A RODADA!!!\n",jogador2, jogador1); printf("\nA palavra correta era: %s\n",palavra); break; } } ///---------------------O IF ABAIXO FOI FEITO PARA GUARDAR AS LETRAS JÁ DIGITADAS PELO JOGADOR 2-------------------------------------------------- else{ erros[caractere2] = letra[0]; caractere2++; } } ///NO CASO ABAIXO, CASO AS LETRAS DIGITADAS E ACERTADAS FOREM DO MESMO TAMANHO QUE A VARIAVEL 'TAMANHO', IGUALADA À STRING 'PALAVRA' ///DIGITADA PELO JOGADOR 1, O PROGRAMA ACABA E IMPRIME O PRINTF ABAIXO if(acertos==tamanho){ printf("PARABÉNS, %s, VOCÊ ACERTOU A PALAVRA. VOCÊ VENCEU A RODADA!!!\n", jogador2); printf("\nA palavra era: %s\n",palavra); break; } system("clear"); } ///----------------------------------------------AQUI ACABA O LAÇO WHILE------------------------------------------------------------------------------------- return (0); }
  2. Ola,sou novo no fórum e também na área de programação e estou com uma dúvida e precisando de ajuda em um código que acredito eu ser simples, estou tentando executar um jogo da forca utilizando arquivo binário e parece que a variável palavraCerta não está recebendo nenhuma das palavras cadastradas, alguém poderia dar uma olhada no código e me apontar o erro(s) do código? segue o código abaixo: Program pzim ; type biblioteca = record palavra : string; dica : string; end; type declareg = file of biblioteca; {------------------------------------------------------------------------------------------------} procedure criarArquivo (var arquivoPalavras : declareg); begin {$I-} reset(arquivoPalavras); if IOResult <> 0 then rewrite(arquivoPalavras); {$I+} end; {-----------------------------------------------------------------------------------------------} procedure inserirPalavras (var arquivoPalavras : declareg); var PeD : biblioteca; cont : integer; begin for cont:= 1 to 2 do begin clrscr; write('Digite uma palavra: '); read(PeD.palavra); seek (arquivoPalavras, filesize(arquivoPalavras)); write(arquivoPalavras,PeD); write('Digite uma dica: '); read(PeD.dica); seek (arquivoPalavras, filesize(arquivoPalavras)); write(arquivoPalavras,PeD); end; end; {-----------------------------------------------------------------------------------------------} procedure adivinhar(var arquivoPalavras : declareg); var vetorpalav: array [1..2] of string; palavraCerta, palavraParcial:string; tentativa :Char; qtdTentativas, X, opc :Integer; acertouPalavra: Boolean; begin qtdTentativas := 8; repeat writeln; writeln (' Jogo da Forca'); writeln; write (' Digite de 1 a 2 para escolher uma palavra: '); readln (opc); until (opc >= 1) and (opc <= 2); palavraCerta := vetorpalav[opc]; for X := 0 to Length(palavraCerta) do begin if (palavraCerta[X] = ' ') then palavraParcial[X] := ' ' else if (palavraCerta[X] = '-') then palavraParcial[X] := '-' else palavraParcial[X] := '*'; end; repeat ClrScr; writeln; writeln (' ',palavraParcial); writeln; acertouPalavra := true; for X := 1 to Length (palavraCerta) do if palavraParcial[X] = '*' then acertouPalavra := false; if acertouPalavra = true then begin writeln (' Parabens, voce acertou a palavra.'); readln; break; end else if qtdTentativas > 0 then begin writeln (' Voce tem ', qtdTentativas, ' tentativas restantes.'); write (' Digite uma letra (letra minuscula): '); tentativa := readkey; if Pos(tentativa, palavraParcial) = 0 then for X := 1 to Length(palavraCerta) do begin if (palavraCerta[X] = tentativa) then begin palavraParcial[X] := tentativa; end else if Pos(tentativa, palavraCerta) = 0 then begin qtdTentativas := qtdTentativas - 1; break; end; end else qtdTentativas := qtdTentativas - 1; end else begin writeln (' Voce perdeu, tente novamente.'); readln; break; end; until tentativa = Chr(27); end; {----------------------------------------------------------------------} procedure Menu; var opcao : integer; arquivoPalavras : declareg; begin assign(arquivoPalavras,'C:\Forca.bin'); criarArquivo(arquivoPalavras); repeat clrscr; writeln(' Forca '); writeln('1 - Inserir Palavras'); writeln('2 - Jogar'); writeln('3 - Sair'); writeln('Opcao: '); readln(opcao); case opcao of 1: inserirPalavras(arquivoPalavras); 2: adivinhar(arquivoPalavras); end; until opcao = 3; close(arquivoPalavras); end; Begin Menu; End. Obrigado!
×
×
  • Create New...