2016-09-01 5 views
-1

私はもっと複雑になっているゲームのアップデートです。私は最初のjavascriptプロジェクトのためにシンプルで小さなブラウザのRPGゲームを作成しようとしています。私は現在のコードについていくつか心配しています:このJavascriptゲームを正しくループさせるには

1)ゲームをラウンド数に応じてループします。試合は5ラウンドで開始され、0になったら終了します。明らかに、私の関数にforループを張っておくと、現在の境界で解決されますが、何らかの理由でページに何も現れませんか?

2)私のインターバルタイマのために、関数全体が一度に1秒間ループしますが、どうすれば関数の各行に1秒ずつかかるので実際に起こっているように見えます全体の機能として1秒ごとにテキストのブロック?

ここに私のコードはこれまでです:

var yourHP = 100; 
var dragonHP = 100; 
var yourattk = Math.floor((Math.random() * 100) +1); 
var dragonattk = Math.floor((Math.random() * 100) +1); 
var totalRounds = 5; 

function startGame() { 

    for (totalRounds === 5; totalRounds > 0; totalRounds--) { 
    document.write("You begin the attack!<br>"); 
    document.write("You attacked the dragon for " + yourattk + "!<br>"); 
    var dbattlehp = dragonHP - yourattk; 
    document.write("The dragon takes a hit! Dragon's HP is now " + dbattlehp + "<br>"); 
    document.write("Dragon rears it's head to strike!<br>"); 
    var yourbattlehp = yourHP - dragonattk; 
    document.write("Dragon attacked you for" + dragonattk + " , your remaining hp:" + yourbattlehp + "<br>"); 
    document.write("Congrads! You survived the attack... Your current HP Is:" + yourbattlehp + ", and the dragons:" + dbattlehp + "<br>"); 
    var yourChangedAttk = Math.floor((Math.random() * 100) +1); 
    var dchangeAttk = Math.floor((Math.random() * 100) +1); 
    yourChangedAttk = yourattk; 
    dchangeAttk = dragonattk; 
    } 
    else { 
     document.write("Game's Over!"); 
    } 

setInterval(startGame, 1000); 

startGame(); 
+0

罰金を働いていましたか? – Robusto

+1

最後の 'document.write()'にtypo/syntaxエラーがあります。 '' Dragon ''と変数 '' dragonattk'の文字列 '' Dragon ''は、それらの間の演算子なしで互いに隣り合うことはできません。 –

+0

@JonathanLonowskiあなたは質問全体を変更しましたが、今やすべてのコメントと回答は意味をなさないものです。 – Arjun

答えて

3

がするsetIntervalにstartGameから引用符を削除()関数:

setInterval(startGame, 1000); 

ヨナタンとジョシュによって強調も構文エラー:

document.write("Dragon attacked you for" + dragonattk + " , your remaining hp:" + yourbattlehp); 

コードは次のようになります。

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Fun with Programming</title> 
<script> 

var yourHP = 100; 
var dragonHP = 100; 
var yourattk = Math.floor((Math.random() * 100) +1); 
var dragonattk = Math.floor((Math.random() * 100) +1); 
var yourLives = 5; 


</script> 

</head> 
<body> 

<script type="text/javascript"> 

setInterval(startGame, 1000); 

function startGame() { 
    document.write("You begin the attack!"); 
    document.write("You attacked the dragon for " + yourattk + "!"); 
    var dbattlehp = dragonHP - yourattk; 
    document.write("The dragon takes a hit! Dragon's HP is now " + dbattlehp); 
    document.write("Dragon rears it's head to strike!"); 
    var yourbattlehp = dragonattk - yourHP; 
    document.write("Dragon attacked you for"+ dragonattk + " , your remaining hp:" + yourbattlehp); 

} 

startGame(); 
+0

これは答えの一部です。残りの部分に構文エラーがあります: 'document.write(" dragonattk + "、 –

0

あなたにはいくつかの問題がありました。まず、あなたはdragonattkの前に+記号がありませんでした。次に、setIntervalにメソッド名を引用符で囲みました。

次のコードが機能します。スニペットをチェックアウトして実行してください。あなたは "+" を逃した最後のdocument.writeで

var yourHP = 100; 
 
var dragonHP = 100; 
 
var yourattk = Math.floor((Math.random() * 100) +1); 
 
var dragonattk = Math.floor((Math.random() * 100) +1); 
 
var yourLives = 5; 
 

 
function startGame() { 
 
    document.write("You begin the attack!"); 
 
    document.write("You attacked the dragon for " + yourattk + "!"); 
 
    var dbattlehp = dragonHP - yourattk; 
 
    document.write("The dragon takes a hit! Dragon's HP is now " + dbattlehp); 
 
    document.write("Dragon rears it's head to strike!"); 
 
    var yourbattlehp = dragonattk - yourHP; 
 
    document.write("Dragon attacked you for" + dragonattk + " , your remaining hp:" + yourbattlehp); 
 

 
} 
 

 
setInterval(startGame, 1000);
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <title>Fun with Programming</title> 
 
</head> 
 
<body> 
 

 
</body> 
 
</html>

0

。 use、
"document.write(" Dragononattk + "、あなたの残りのhp:" + yourbattlehp); "

は、クロム、FirefoxとIEでチェックし、なぜあなたはにdocument.writeを使用している

関連する問題