2016-07-19 8 views
0

プレイヤーが敗北したり勝ったときにゲームの終了方法を理解できません。私は間違って何をしていますか?これは私がこれまで持っていたものです。どんな提案も役に立ちます。ありがとう!ゲーム終了時に新しいゲームの開始を拒否する方法は?

<HTML> 
<HEAD> 
<TITLE>Hangman</TITLE> 
<SCRIPT LANGUAGE="JavaScript"><!-- 
gallows = new Array("--------\n|  |\n|\n|\n|\n|\n=====", 
"--------\n|  O\n|\n|\n|\n|\n=====", 
"--------\n|  O\n|  |\n|\n|\n|\n=====", 
"--------\n|  O\n|  \\|\n|\n|\n|\n=====", 
"--------\n|  O\n|  \\|/\n|\n|\n|\n=====", 
"--------\n|  O\n|  \\|/\n|  |\n|\n|\n=====", 
"--------\n|  O\n|  \\|/\n|  |\n|  /\n|\n=====", 
"--------\n|  O\n|  \\|/\n|  |\n| /\\\n|\n=====") 
guessChoices = new 
Array("summertime") 
    { 
guesses = 0 
max = gallows.length-1 
guessed = " " 
len = guessChoices.length - 1 
toGuess = guessChoices[Math.round(len*Math.random())].toUpperCase() 
displayHangman() 
displayToGuess() 
displayGuessed() 
} 
function stayAway() { 
document.game.elements[3].focus() 
alert("Don't mess with this form element!") 
} 
function displayHangman() { 
document.game.status.value=gallows[guesses] 
} 
function displayToGuess() { 
pattern="" 
for(i=0;i<toGuess.length;++i) { 
    if(guessed.indexOf(toGuess.charAt(i)) != -1) 
    pattern += (toGuess.charAt(i)+" ") 
    else pattern += "_ " 
} 
document.game.toGuess.value=pattern 
} 
function displayGuessed() { 
document.game.guessed.value=guessed 
} 
function badGuess(s) { 
if(toGuess.indexOf(s) == -1) return true 
return false 
} 
function winner() { 
for(i=0;i<toGuess.length;++i) { 
    if(guessed.indexOf(toGuess.charAt(i)) == -1) return false 
} 
return true 
} 
function guess(s){ 
if(guessed.indexOf(s) == -1) guessed = s + guessed 
if(badGuess(s)) ++guesses 
displayHangman() 
displayToGuess() 
displayGuessed() 
if(guesses >= max){ 
alert("You're dead.") 
} 
if(winner()) { 
    alert("You won!") 
} 
} 
// --></SCRIPT> 
</HEAD> 
<BODY> 
<H1>Hangman</H1> 
<FORM NAME="game"> 
<PRE> 
<TEXTAREA NAME="status" ROWS="7" COLS="16" 
ONFOCUS="stayAway()"></TEXTAREA> 
</PRE><P> 
<INPUT TYPE="TEXT" NAME="toGuess" 
ONFOCUS="stayAway()"> Enter this word in the promo code box!<BR> 
<INPUT TYPE="TEXT" NAME="guessed" 
ONFOCUS="stayAway()"> Letters you have guessed.<BR> 
<P>Enter your next guess.</P> 
<INPUT TYPE="BUTTON" VALUE=" A " ONCLICK="guess('A')"> 
<INPUT TYPE="BUTTON" VALUE=" B " ONCLICK="guess('B')"> 
<INPUT TYPE="BUTTON" VALUE=" C " ONCLICK="guess('C')"> 
<INPUT TYPE="BUTTON" VALUE=" D " ONCLICK="guess('D')"> 
<INPUT TYPE="BUTTON" VALUE=" E " ONCLICK="guess('E')"> 
<INPUT TYPE="BUTTON" VALUE=" F " ONCLICK="guess('F')"> 
<INPUT TYPE="BUTTON" VALUE=" G " ONCLICK="guess('G')"> 
<INPUT TYPE="BUTTON" VALUE=" H " ONCLICK="guess('H')"> 
<INPUT TYPE="BUTTON" VALUE=" I " ONCLICK="guess('I')"> 
<INPUT TYPE="BUTTON" VALUE=" J " ONCLICK="guess('J')"> 
<INPUT TYPE="BUTTON" VALUE=" K " ONCLICK="guess('K')"> 
<INPUT TYPE="BUTTON" VALUE=" L " ONCLICK="guess('L')"> 
<INPUT TYPE="BUTTON" VALUE=" M " ONCLICK="guess('M')"> 
<INPUT TYPE="BUTTON" VALUE=" N " ONCLICK="guess('N')"> 
<INPUT TYPE="BUTTON" VALUE=" O " ONCLICK="guess('O')"> 
<INPUT TYPE="BUTTON" VALUE=" P " ONCLICK="guess('P')"> 
<INPUT TYPE="BUTTON" VALUE=" Q " ONCLICK="guess('Q')"> 
<INPUT TYPE="BUTTON" VALUE=" R " ONCLICK="guess('R')"> 
<INPUT TYPE="BUTTON" VALUE=" S " ONCLICK="guess('S')"> 
<INPUT TYPE="BUTTON" VALUE=" T " ONCLICK="guess('T')"> 
<INPUT TYPE="BUTTON" VALUE=" U " ONCLICK="guess('U')"> 
<INPUT TYPE="BUTTON" VALUE=" V " ONCLICK="guess('V')"> 
<INPUT TYPE="BUTTON" VALUE=" W " ONCLICK="guess('W')"> 
<INPUT TYPE="BUTTON" VALUE=" X " ONCLICK="guess('X')"> 
<INPUT TYPE="BUTTON" VALUE=" Y " ONCLICK="guess('Y')"> 
<INPUT TYPE="BUTTON" VALUE=" Z " ONCLICK="guess('Z')"><P> 

</FORM> 
</BODY> 
</HTML> 

私はちょうどこれを学んでいますので、あなたの返事で簡単にしてください。ありがとう!

if(guesses >= max){ 
    alert("You're dead. Press OK to start new game.") 
    location.reload(true); 
} 
if(winner()) { 
    alert("You won! Press OK to start new game.") 
    location.reload(true); 
} 

それとも、あなたがボタンを持っているフォームの一部を隠し、メッセージを表示することができます:新しいゲームを始めるまで来て、あなたがlocation.reload(true)でページをリロードできalert

+0

コードの作品を​​:それを解決するには、右のあなたのbodyタグの最後にscriptタグを移動します。私は "あなたが勝った!"というメッセージを受け取ります。私は正しい文字を入力します。何が問題ですか?スタートアップコードがフォームを参照できるように、スクリプトをHTMLドキュメントの最後に移動する必要があります。しかし、この問題はあなたが最後まで演奏するのを妨げるものではありません。 – trincot

+0

ねえ、そこに...助けてくれてありがとう!はい、あなたは正しいです、それはメッセージを出します。しかし、人が敗北すると、メッセージも出されますが、それ以降も、パズルが解決されるまで手紙を選択し続けることができます。失ってもゲームは終了し、もうプレイできなくなるはずです。故意にそれを失うように試してみてください。ゲームがあなたに紛失したことを伝えたら、別の手紙を選んで私が何を参照しているのか見てみてください。ポイントは、あなたが失った場合、ゲームを終了する必要があります。 – kateyes1966

+0

ああ、私は今あなたが意味するものを参照してください。私は答えを投稿します... – trincot

答えて

0

右、代わりに:

var gallows = new Array("--------\n|  |\n|\n|\n|\n|\n=====", 
 
         "--------\n|  O\n|\n|\n|\n|\n=====", 
 
         "--------\n|  O\n|  |\n|\n|\n|\n=====", 
 
         "--------\n|  O\n|  \\|\n|\n|\n|\n=====", 
 
         "--------\n|  O\n|  \\|/\n|\n|\n|\n=====", 
 
         "--------\n|  O\n|  \\|/\n|  |\n|\n|\n=====", 
 
         "--------\n|  O\n|  \\|/\n|  |\n|  /\n|\n=====", 
 
         "--------\n|  O\n|  \\|/\n|  |\n| /\\\n|\n=====") 
 
var guessChoices = new Array("summertime") 
 
var guesses = 0 
 
var max = gallows.length-1 
 
var guessed = " " 
 
var len = guessChoices.length - 1 
 
var toGuess = guessChoices[Math.round(len*Math.random())].toUpperCase() 
 
displayHangman() 
 
displayToGuess() 
 
displayGuessed() 
 

 
function stayAway() { 
 
    document.game.elements[3].focus() 
 
    alert("Don't mess with this form element!") 
 
} 
 
function displayHangman() { 
 
    document.game.status.value=gallows[guesses] 
 
} 
 
function displayToGuess() { 
 
    pattern="" 
 
    for(i=0;i<toGuess.length;++i) { 
 
    if(guessed.indexOf(toGuess.charAt(i)) != -1) 
 
     pattern += (toGuess.charAt(i)+" ") 
 
     else pattern += "_ " 
 
     } 
 
    document.game.toGuess.value=pattern 
 
} 
 
function displayGuessed() { 
 
    document.game.guessed.value=guessed 
 
} 
 
function badGuess(s) { 
 
    if(toGuess.indexOf(s) == -1) return true 
 
    return false 
 
} 
 
function winner() { 
 
    for(i=0;i<toGuess.length;++i) { 
 
    if(guessed.indexOf(toGuess.charAt(i)) == -1) return false 
 
     } 
 
    return true 
 
} 
 
function guess(s){ 
 
    if(guessed.indexOf(s) == -1) guessed = s + guessed 
 
    if(badGuess(s)) ++guesses 
 
    displayHangman() 
 
    displayToGuess() 
 
    displayGuessed() 
 
    if(guesses >= max){ 
 
    gameOver(0); 
 
    } 
 
    if(winner()) { 
 
    gameOver(1); 
 
    } 
 
} 
 
function gameOver(outcome) { 
 
    // Make appropriate message visible, and only that one (you won, you lost) 
 
    document.querySelectorAll('.result')[outcome].style.display = ''; 
 
    document.querySelectorAll('.result')[1-outcome].style.display = 'none'; 
 
    // Show game-over message area and hide buttons 
 
    document.querySelector('#gameover').style.display = ''; 
 
    document.querySelector('#playing').style.display = 'none'; 
 
}
<FORM NAME="game"> 
 
    <PRE> 
 
    <TEXTAREA NAME="status" ROWS="7" COLS="16" 
 
    ONFOCUS="stayAway()"></TEXTAREA> 
 
    </PRE> 
 
    <P> 
 
    <INPUT TYPE="TEXT" NAME="toGuess" 
 
    ONFOCUS="stayAway()"> Enter this word in the promo code box!<BR> 
 
    <INPUT TYPE="TEXT" NAME="guessed" 
 
    ONFOCUS="stayAway()"> Letters you have guessed.<BR> 
 
    </P> 
 
    <div id="playing"> 
 
    <P>Enter your next guess.</P> 
 
    <INPUT TYPE="BUTTON" VALUE=" A " ONCLICK="guess('A')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" B " ONCLICK="guess('B')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" C " ONCLICK="guess('C')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" D " ONCLICK="guess('D')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" E " ONCLICK="guess('E')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" F " ONCLICK="guess('F')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" G " ONCLICK="guess('G')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" H " ONCLICK="guess('H')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" I " ONCLICK="guess('I')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" J " ONCLICK="guess('J')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" K " ONCLICK="guess('K')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" L " ONCLICK="guess('L')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" M " ONCLICK="guess('M')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" N " ONCLICK="guess('N')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" O " ONCLICK="guess('O')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" P " ONCLICK="guess('P')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" Q " ONCLICK="guess('Q')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" R " ONCLICK="guess('R')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" S " ONCLICK="guess('S')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" T " ONCLICK="guess('T')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" U " ONCLICK="guess('U')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" V " ONCLICK="guess('V')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" W " ONCLICK="guess('W')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" X " ONCLICK="guess('X')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" Y " ONCLICK="guess('Y')"> 
 
    <INPUT TYPE="BUTTON" VALUE=" Z " ONCLICK="guess('Z')"> 
 
    </div> 
 
    <div id="gameover" style="display:none"> 
 
    <div><span class="result">You're dead.</span><span class="result">You won!</span></div> 
 
    <div>Thanks for playing... try again tomorrow!</div> 
 
    </div> 
 
</FORM>

サイドノート:ページLOA dsは

document.gameはライン30スクリプトの実行時にDOMがまだ読み込まれていないためです

に定義されていないJavaScriptエラーがあります。

<body> 
    ... 
    <script> 
     // all your code 
    </script> 
</body> 
+0

あなたは何を言っているのか見ていますが、私はそれを再読み込みしたくありません。だから私はそれを終了するように伝えることはできますか?これは、1日に1回ゲームをプレイできるようにしたいと思っていて、毎日解決するために新しい言葉でそれをリセットするということです。理にかなっている? – kateyes1966

+0

そしてスクリプトのヒントをありがとう! :) – kateyes1966

+0

だからあなたは何とかしたいですか?空白の画面ですか?空白のページに「再生していただきありがとう、次回お会いしますか?」というメッセージが表示されますか?すべてのボタンを無効にしますか?明確にすることはできますか? – trincot

関連する問題