Pesquisar na Comunidade
Mostrando resultados para as tags ''Forca''.
Encontrado 4 registros
-
Boa tarde, gostaria de deixar aqui minha dúvida sobre um código que fiz. É um jogo da forca e ele até está funcionando bem, porém quando o usuário insere um caractere especial, ele simplesmente não faz a leitura. Por exemplo, se a palavra a ser adivinhada pelo(s) jogador(es) for " óculos ", na hora que o usuário inserir uma letra com o respectivo acento ( no caso é o acento agudo no 'o' ) irá aparecer na tela qualquer coisa, menos a letra 'O' com o acento. Deve ficar mais claro com o código (assim espero kkk) #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<string.h> #include<conio.h> main() { setlocale(LC_ALL,"portuguese"); char tentativa, palavra[200], incognita[200]; int cont=0, quant_cp, final=0, aux=0, ind_copy=0; printf("\n\t\t\t\t\tJOGO DA FORCA"); printf("\n\nInsira a palavra a ser adivinhada : "); setbuf(stdin,NULL); gets(palavra); quant_cp = strlen(palavra); // Pega a quantidade de caracteres da palavra inserida system("cls"); printf("\n\t\t\t\t\tJOGO DA FORCA"); printf("\n\nLembre-se de que espaços são como letras."); printf("\n\n\n\n\t\t"); for(cont=0; cont<quant_cp; cont++) { incognita[cont] = '_'; // Coloca "underlines" em um vetor para ser impresso // de acordo com a quantidade de caracteres } do { system("cls"); printf("\n\t\t\t\t\tJOGO DA FORCA"); printf("\n\nLembre-se de que espaços são como letras."); printf("\n\n\n\n\t"); for(cont=0; cont<quant_cp; cont++) { printf("%c ", incognita[cont]); // Imprime os "underlines" na tela } printf("\n\nInsira uma letra : "); setbuf(stdin,NULL); tentativa = getch(); for(cont=0; cont<quant_cp; cont++) // Verificar se a letra foi inserida anteriormente, evitando o término { // do jogo de forma indesejada. if(tentativa == incognita[cont]) { goto jump; } } for(cont=0; cont<quant_cp; cont++) { if(tentativa == palavra[cont]) { incognita[cont] = tentativa; // Armazena a letra correta em icognita final++; // Faz o incremento. Quando "final" tiver um valor igual à quantidade de caracteres (quant_cp) da palavra inserida // o programa é encerrado. } } jump: for(cont=0; cont<quant_cp; cont++) { printf("%c ", incognita[cont]); } } while(final!=quant_cp); printf("\n\nParabéns, você venceu !"); return 0; }
-
Bom Dia, Estou tentando montar o jogo da forca na linguagem C, mas meu programa vem dando falhas na contagem dos erros, mesmo eu acertando ele decrementa 1 da variável das vidas, e quando ocorre realmente um erro ele decrementa 2, o programa faz o laço duas vezes aparentemente, e não consigo entender como. Já modifiquei as condições para ocorrer o decremento e afins, mas esse erro persiste. Aqui o programa feito: #include<stdio.h> #include<time.h> #include<string.h> #include<stdlib.h> main(){ int i,random,vidas=5; char letra,anterior[30],acertos[30],cidades[5][30]={"ISTAMBUL","DUBAI","são PETESBURGO","PALESTINA","LISBOA"}; srand(time(NULL)); random=rand()%5; for(i=0;i<strlen(cidades[random]);i++){ acertos='_'; } strcpy(anterior,acertos); for(;vidas>0;){ printf("A FORCA\n"); printf("VIDAS: %d\n\t",vidas); puts(acertos); if(strcmp(cidades[random],acertos)){ printf("\nDigite a letra:\n"); letra=getchar(); letra=toupper(letra); system("cls"); for(i=0;i<strlen(cidades[random]);i++){ if(letra==cidades[random]){ acertos=letra; } } } else{ printf("\n\nVC GANHOU"); break; } if(strcmp(acertos,anterior)){ strcpy(anterior,acertos); } else vidas--; } if(vidas<1){ printf("\n\nVC MORREU!"); } } Desde já agradeço!
-
Bom galera, estou com um problema para resolver com esse jogo. Quando digito a opcao um para jogar, ele corre direto para a parte de adivinhar as palavras o que eu posso fazer pra corrigir? e quando peco para voltar apos este erro ele tambem não volta. #include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<math.h> int main () { char tam_palavra,palavra[25],letra[25],lacuna[25]="_"; int vida=6,letra_errada,i,letras_acertadas=0; int op; char resp; do { system("cls"); printf("\n\t\t\t\tJOGO DA FORCA\n\n\n\n\n\n\n"); printf("\n1-JOGAR"); printf("\n2-INSTRUCOES"); printf("\n3-AUTORES"); printf("\n4-SAIR \n\n\n\n"); printf("\nDIGITE UMA OPCAO\n"); scanf ("%d", &op); if (op==1) { do {system ("cls"); printf("\n Voce vai comecar a jogar"); printf("\n\nDigite a palavra para ser usada na forca:\n\n"); gets(palavra); system("cls"); for(i=0;i<strlen(palavra);i++) lacuna='-'; tam_palavra=strlen(palavra); while(vida>0) { letra_errada=0; printf("\n %s \n",lacuna); printf("\n Digite uma Letra: "); gets(letra); for(i=0;i<strlen(palavra);i++) { if(letra[0]==palavra) { lacuna=palavra; letras_acertadas++; letra_errada++; } } if(letra_errada==0) { vida=vida-1; if(vida==0) { printf("\n\n GAME OVER!!!! VOCE FOI ENFORCADO!"); printf("\n A PALAVRA CORRETA ERA: %s",palavra); break; } else printf("\n ERROOOOU! RESTAM %d VIDA(S)",vida); } else{ if(letras_acertadas==tam_palavra) { printf("\n\n ACERTOOOU! VOCE GANHOU!"); printf("\n A PALAVRA CORRETA E: %s",palavra); break;} else { printf("\n VOCE ACERTOU UMA LETRA!"); } } } printf("\n\n"); system("pause"); printf ("\n Deseja voltar (s/n) ?"); scanf (" %s", &resp); }while (resp=='n'); } if (op==2) { do {system ("cls"); printf("\n\t\t\t\tJOGO DA FORCA\n\n\n"); printf("O objetivo deste jogo e descobrir uma palavra adivinhando as letras que ela possui. A cada rodada, os jogadores"); printf(" irao simultaneamente escolher uma letra que suspeitem fazer parte da palavra. Caso a palavra contenha esta letra,"); printf(" sera mostrado em que posicao o posicoes ela esta. Entretanto, caso esta letra não exista na palavra, sera desenhada uma"); printf(" parte do corpo do boneco do jogador. Se todas as 6 partes corpo do boneco estiverem desenhadas, o jogador"); printf(" estara fora da partida\n\n\n"); printf ("\n Deseja voltar? (s/n)"); scanf (" %s", &resp); }while (resp=='n');} if (op==3) {do { system ("cls"); printf("\n\t\t\t\tJxxxx\n\n"); printf("\n-xxxxxx\n"); printf("\n-Axxxx\n"); printf("\n-xxxxxx\n"); printf("\n-xxxxxxx\n"); printf("\n-xxxxxx\n"); printf("\n-16/06/2015\n"); printf("\n-xxxxxx\n"); printf("\n-xxxxxx\n"); printf("\n-xxxxx\n"); printf("\n-xxxx\n\n\n"); printf ("\n Deseja voltar? (s/n)"); scanf (" %s", &resp); }while (resp=='n');} }while(op==0); return 0; }
-
Brothers, Encontrei este jogo da forca, mas ele parece incompleto, pois o bonequinho enforcado não funciona de acordo com os erros cometidos. Outra coisa é que eu queria sempre mostrar uma imagem (como dica) de acordo com a palavra selecionada. Como sou iniciante em javascript, gostaria de uma ajuda para incluir estas duas soluções nesse código: <script> Array.prototype.random = function() { /*Retorna um valor randômico de um array*/ return this[Math.floor((Math.random()*this.length))]; } Array.prototype.chrArrayToString = function(sep) { var a = new String(); var len = this.length; for (var i = 0; i < len; i++) { a += this if (i+1<len) a += sep; } return a; } Array.prototype.search = function(s,q){ /*Multi-dimensional array search in javascript*/ var len = this.length; if (q) { s=s.toString(); for(var i=0; i<len; i++){ if(this.constructor == Array) if(this.search(s,q)) return true; if(this.toString().indexOf(s) != -1) return true; } } else { for(var i=0; i<len; i++){ if(this.constructor == Array) if(this.search(s,q)) return true; if(this===s) return true; } } return false; } String.prototype.replaceAt=function() { var rlen=(arguments[2]==null?1:arguments[2]); return this.substring(0,arguments[0])+arguments[1]+this.substring(arguments[0]+rlen); } String.prototype.formatCurrency = function© { var t = this; if(c == undefined) c = 2; var p, d = (t=t.split("."))[1].substr(0, c); for(p = (t=t[0]).length; (p-=3) > 1;) { t = t.substr(0,p) + "." + t.substr(p); } return t+","+d+Array(c+1-d.length).join(0); } String.prototype.tiraacento = function (word){ var palavra = this.toLowerCase(); palavra = palavra.replace(/[áàâãª]/g,'a'); palavra = palavra.replace(/[ÁÀÂÃ]/g,"A"); palavra = palavra.replace(/[éèê]/g,"e"); palavra = palavra.replace(/[ÉÈÊ]/g,"E"); palavra = palavra.replace(/[íìî]/g,"i"); palavra = palavra.replace(/[óòôõº]/g,"o"); palavra = palavra.replace(/[ÓÒÔÕ]/g,"O"); palavra = palavra.replace(/[úùû]/g,"u"); palavra = palavra.replace(/[ÚÙÛ]/g,"U"); return palavra; } /* Construtor da classe */ function forca() {} function executa(e){ /* Correção para eventos quebrados da Microsoft */ if(typeof(e)=='undefined')var e=window.event; source=e.target?e.target:e.srcElement; /* Correção para o bug do Konqueror/Safari */ if(source.nodeType==3)source=source.parentNode ; /* Obtém a letra digitada */ var letra=source.value.tiraacento(); /* validação de entrada */ var validentry=/[A-Za-zÀ-ú]/ source.value=""; if(!validentry.test(letra)) return false /* Se a letra ainda não está na lista de tentativas, adicione-a */ if(!this.letrastentadas.search(letra)) { this.letrastentadas.push(letra); this.tries.innerHTML = "Letras tentadas: " + this.letrastentadas.chrArrayToString(','); } if (this.palavraminuscula.indexOf(letra) != -1){ /* Achei a letra na palavra ! */ this.mostraletras(letra); }else{ this.divmessages.innerHTML = 'A palavra não contém a letra ' + letra; this.verificaerros(letra); } } function verificaerros(letra){ /* se tem 0 erros ou a letra ainda não está na lista de letras erradas */ if (this.errors ==0 || !this.erradasletras.search(letra)){ this.erradasletras.push(letra); this.erros++; } this.diverros.innerHTML = this.erros + ' erro(s)'; /* número máximo de error artingido, reiniciar o jogo ? */ if (this.erros>5){ this.divmessages.innerHTML = 'Fim de jogo!<br /> A palavra era ' + this.palavraselecionada; var denovo = confirm("Quer jogar de novo?"); if (denovo==true) this.init(); } } function mostraletras(caractere){ /* em board], temos um array do tamanho da palavra oculta. Se não foi achado ainda, board[caractere] =0 Após achar, board[caractere] =1 Depois de achado e exibido, board[caractere] =2 */ for (var x=this.t-1; x>=0;x--){ if (this.palavraminuscula.charAt(x) == caractere) this.board[x]=1; } this.mostrapalavra(); } function mostrapalavra(){ for (var x=0; x<this.t;x++){ if (this.board[x] & 1){ var ch = this.selecionadaarray[x]; this.wordoculta=this.wordoculta.replaceAt(x, ch); this.board[x] = 2; } } this.telaoculta.innerHTML = this.wordoculta; if (this.wordoculta==this.palavraselecionada){ this.telaoculta.innerHTML = "Parabéns, você acertou! A palavra é: " + this.palavraselecionada; var denovo = confirm("Quer jogar de novo?"); if (denovo==true) this.init() } } function iniciar(){ this.erros=0; this.wordoculta=new String; this.erradasletras=new Array; this.letrastentadas=new Array; this.board=new Array; this.selecionadaarray=new Array; var palavras = new Array('Walter', 'Aline', 'Cecília', 'Rodrigo', 'Cidades', 'Coração', 'Freud', 'Jônatas', 'Rafael', 'Aprígio', 'javascript','venkman','mozilla','php','manga','mosquito', 'Nina', 'Lewis','Einstein'); this.size = document.getElementById('tamanho'); this.divmessages = document.getElementById('messages'); this.diverros=document.getElementById('erros'); this.telaoculta=document.getElementById('palavraoculta'); this.tries=document.getElementById('tentativas'); this.palavraselecionada = palavras.random(); this.palavraminuscula = this.palavraselecionada.tiraacento(); this.t=this.palavraselecionada.length; this.wordoculta=this.palavraminuscula.replace(/[A-Za-zÀ-ú]/g,'_'); for (var z=0;z<this.t;z++){ this.board[z]=0; this.selecionadaarray[z] = this.palavraselecionada.charAt(z); } this.telaoculta.innerHTML = this.wordoculta; this.divmessages.innerHTML = 'Novo jogo iniciado'; this.diverros.innerHTML = 'Nenhum erro até o momento'; this.size.innerHTML = 'A palavra tem ' + this.t + ' letras'; this.tries.innerHTML = "Letras tentadas:"; } forca.prototype.executa=executa forca.prototype.verificaerros=verificaerros forca.prototype.mostraletras=mostraletras forca.prototype.mostrapalavra=mostrapalavra forca.prototype.init=iniciar function executaforca(e){ fo.executa(e); } function reinicio(){ document.getElementById('entrada').focus(); fo.init(); } window.onload = init function init(){ document.getElementById('entrada').focus(); fo = new forca(); fo.init(); var inputentry=document.getElementById('entrada'); inputentry.onkeyup=executaforca; var novo=document.getElementById('new'); novo.onclick=reinicio } </script> <style> input.hid{ display:none; } body{ background-color:#fff; font-family:Verdana,Arial,Helvetica; color:blue; font-weight:bold;} #palavraoculta{ letter-spacing:5px; } input.entry{ border:1px solid #666666; background-color: #ffffff; } </style> <head> <title>Forca</title> </head> <center> <br><br><br> <body> <div id="tamanho"></div> <div id="erros"></div> <div id="palavraoculta"></div> <br /> <form> <input id="hid" class="hid"></input> <input id="entrada" type="text" class="entry" size="1" maxlength="1"></input> <div id="messages"></div> <div id="tentativas"></div><br /> <input type="button" value="Tentar Outra Palavra" id="new"></input> </form> <pre> ____ | | | O | /|\ | / \ | </pre> </body> </center> </html>