2016-10-07 15 views
0

ハサミ、紙ゲームのジャバスクリプト。言語はノルウェー語です。タイマーをテキストの一部に設定して、残りのテキストの後に数秒間表示されるようにします。ここJavaScriptタイマー付きテキスト

は、コードは次のとおりように "デュvantデュvalgteスタイン、メンズpc'en valgteサックス" 例tekst =ため

<script> 

     } 
     var decide = prompt("Skriv inn enten (stein, saks eller papir)"); 
     var tekst=""; 
     var random = Math.floor(Math.random()*3)+1; // stein = 1 saks = 2 papir = 3 

     if(decide === "stein" && random === 2) { 
      tekst = "Du valgte stein, mens pc'en valgte saks. Du vant "; 
     } 
     else if(decide === "stein" && random === 3) { 
      tekst = "Du valgte stein, mens pc'en valgte papir. Du tapte"; 
     } 
     else if(decide === "stein" && random === 1) { 
      tekst = "Du valgte stein, mens pc'en valgte stein. Uavgjort"; 
     } 
     else if(decide === "saks" && random === 3) { 
      tekst = "Du valgte saks, mens pc'en valgte papir. Du vant"; 
     } 
     else if(decide === "saks" && random === 2) { 
      tekst = "Du valgte saks, mens pc'en valgte saks. Uavgjort"; 
     } 
     else if(decide === "saks" && random === 1) { 
      tekst = "Du valgte saks, mens pc'en valgte stein. Du tapte"; 
     } 
     else if(decide === "papir" && random === 3) { 
      tekst = "Du valgte papir, mens pc'en valgte papir. Uavgjort"; 
     } 
     else if(decide === "papir" && random === 2) { 
      tekst = "Du valgte papir, mens pc'en valgte saks. Du tapte"; 
     } 
     else if(decide === "papir" && random === 1) { 
      tekst = "Du valgte papir, mens pc'en valgte stein. Du vant"; 
     } 

     document.write(tekst); 




    </script> 

。 し、次に男性のpc'en valgte saks。デュvantは「3秒後に表示されます。ここplsは

+0

を見ているよりも、あなたは追加するには、 'setTimeout'を使用することができます遅延。あなたのコードも有効ではなく、 'if..else'ラダーをたくさん減らすことができます。 – Rajesh

+0

は' document.write'を使わないでください。そうする理由がないだけです。ブラウザから要素を取得してから設定してくださいinnerHTML残りの部分は、遅れてテキストを表示するために 'setTimeout'をチェックしてください(3000はあなたが望むものと思われます) – Icepickle

答えて

0

ヘルプあなたはドロップダウンを利用して、遅延の方法でテキストを示すことによって、あなたのロック/紙/ sizzorsゲームを実装できる方法です

。遅延方法でテキストを表示するための主なポイントは、このコードである:

function showResult(targetElement, text) { 
    setTimeout(function() { 
    document.getElementById(targetElement).innerHTML = text; 
    document.getElementById('runner').disabled = false; 
    }, 3000); 
} 

は3000ミリ秒(3秒)によって実際の動作を遅延し、その後ターゲット要素のinnerHTMLプロパティの一部としてテキストを表示します(スニペットからわかるように、これはdivになります)

var values = [ 
 
    { value: 'rock', wins: ['sizzors'] }, 
 
    { value: 'paper', wins: ['rock'] }, 
 
    { value: 'sizzors', wins: ['paper'] } 
 
]; 
 

 
window.addEventListener('load', function() { 
 
    function addOption(item, value) { 
 
    var opt = new Option(); 
 
    opt.value = value; 
 
    opt.text = value; 
 
    item.options.add(opt); 
 
    } 
 
    
 
    var sel = document.getElementById('choice'); 
 
    addOption(sel, 'make your choice'); 
 
    for (var i = 0, len = values.length; i < len; i++) { 
 
    addOption(sel, values[i].value); 
 
    } 
 
}); 
 

 
function resetResult() { 
 
    document.getElementById('result').innerHTML = ''; 
 
    document.getElementById('runner').disabled = false; 
 
} 
 

 
function solve(sourceElement, targetElement) { 
 
    document.getElementById('runner').disabled = true; 
 
    var choice = document.getElementById(sourceElement); 
 
    if (choice.selectedIndex <= 0) { 
 
    alert('make your choice before clicking "Run"'); 
 
    return; 
 
    } 
 
    var choiceName = choice.options[choice.selectedIndex].value; 
 
    var cpuValueIndex = parseInt(Math.random() * values.length); 
 
    var cpuValue = values[cpuValueIndex]; 
 
    if (cpuValue.value === choiceName) { 
 
    showResult(targetElement, 'Tie'); 
 
    } else if (cpuValue.wins.indexOf(choiceName) >= 0) { 
 
    showResult(targetElement, 'Cpu chose ' + cpuValue.value + ', you loose'); 
 
    } else { 
 
    showResult(targetElement, 'Cpu chose ' + cpuValue.value + ', you win'); 
 
    } 
 
} 
 

 
function showResult(targetElement, text) { 
 
    setTimeout(function() { 
 
    document.getElementById(targetElement).innerHTML = text; 
 
    document.getElementById('runner').disabled = false; 
 
    }, 3000); 
 
}
option, select { 
 
    text-transform: capitalize; 
 
}
<select id="choice" onchange="resetResult()"> 
 
</select> 
 
<button type="button" id="runner" onclick="solve('choice', 'result')">Run</button> 
 
<div id="result"></div>

1

setTimeout機能を使用してください。それはscissors, paper, rockゲームだ場合にも

var decide = prompt("Skriv inn enten (stein, saks eller papir)"); 
 
var tekst = ""; 
 
var random = Math.floor(Math.random() * 3) + 1; // stein = 1 saks = 2 papir = 3 
 

 
if (['stein', 'saks', 'papir'].indexOf(decide) !== -1) { 
 
    tekst = 'Du valgte ' + decide + 'mens pc\'en valgte '; 
 

 
    switch (random) { 
 
    case 1: 
 
     tekst += 'stein'; 
 
     break; 
 
    case 2: 
 
     tekst += 'saks'; 
 
     break; 
 

 
    case 3: 
 
     tekst += 'papir'; 
 
     break; 
 
    } 
 

 
    var result = 'Uavgjort'; 
 

 
    switch (decide) { 
 
    case 'stein': 
 
     if (random == 2) { 
 
     result = 'Du vant'; 
 
     } else if (random == 3) { 
 
     result = 'Du tapte'; 
 
     } 
 
     break; 
 
    case 'saks': 
 
     if (random == 1) { 
 
     result = 'Du tapte'; 
 
     } else if (random == 3) { 
 
     result = 'Du vant'; 
 
     } 
 
     break; 
 
    case 'papir': 
 
     if (random == 2) { 
 
     result = 'Du tapte'; 
 
     } else if (random == 1) { 
 
     result = 'Du vant'; 
 
     } 
 
     break; 
 
    } 
 

 
    var el = document.getElementById('output'); 
 
    el.innerHTML = tekst; 
 

 
    setTimeout(function() { 
 
    el.innerHTML += ' ' + result; 
 
    }, 2000); 
 
}
<span id="output"></span>


this question

var choices = ["rock", "paper", "scissors"]; 
 
var map = {}; 
 

 
choices.forEach(function(choice, i) { 
 
    map[choice] = {}; 
 
    map[choice][choice] = "Was a tie" 
 
    map[choice][choices[(i+1)%3]] = choices[(i+1)%3] + " wins" 
 
    map[choice][choices[(i+2)%3]] = choice + " wins" 
 
}) 
 

 
function compare(choice1, choice2) { 
 
    return (map[choice1] || {})[choice2] || "Invalid choice"; 
 
} 
 

 
alert(
 
    compare(
 
    prompt('Your choice (rock, paper, scissors)'), 
 
    choices[Math.floor(Math.random() * 3)] 
 
) 
 
);

+0

シンプルなゲームを作るためにクールでたくさんのオプションがあります:) – Icepickle

+0

@Icepickleはい。あなたの例では、代わりに(あるいはそれ以上の) 'ロック、ペーパー、ハサミ、トカゲ、Spok'ゲームがあると想像してください。 – Justinas

+0

@Icepickle私のスイッチはあなたのコードを再設計するだけです。 – Justinas

関連する問題