nilww Postado Setembro 25, 2013 Denunciar Share Postado Setembro 25, 2013 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> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nilww
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:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.