【发布时间】:2015-10-04 02:45:43
【问题描述】:
我对编程比较陌生,所以请原谅我的代码。目标是创建一个简单的骰子游戏,其中有两个 Javascript 玩家。我的问题是,当掷骰子时,我似乎可以弄清楚如何正确地将两个掷骰子的总和添加到每个玩家的分数中。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Andrews awesome dice game</title>
<script src="diceGame.js"></script>
<link rel="stylesheet" type="text/css" href="diceGame.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
</head>
<body>
<h1 id="gameTitle" class="col-lg-12">The Dice Game</h1>
<div id="die1" class="dice">0</div>
<div id="die2" class="dice">0</div>
<div class="col-lg-12 playerScore">
<h2>PLAYER 1:</h2>
<h2 id="player1Score"></h2>
<h2>PLAYER 2:</h2>
<h2 id="player2Score"></h2>
<button onclick="rollDice()" id="rollBtn">Roll Dice</button>
<h2 id="status" style="clear:left;"></h2>
</body>
</html>
这是 Javascipt:
//global variables
//Players
var player1 = prompt("what is your name, player 1?");
var player2 = prompt("What is your name, player 2?");
var rollButton = document.getElementById("rollBtn");
var win = 50;
function rollDice(){
var die1 = document.getElementById("die1");
var die2 = document.getElementById("die2");
var status = document.getElementById("status");
var p1Score = document.getElementById("player1Score");
var p2Score = document.getElementById("player2Score");
var score1 = 0;
var score2 = 0;
var moves = 0;
var d1 = Math.floor(Math.random() * 6) + 1;
var d2 = Math.floor(Math.random() * 6) + 1;
var moves = 1;
var diceTotal = d1 + d2;
die1.innerHTML = d1;
die2.innerHTML = d2;
status.innerHTML = "You rolled "+diceTotal+".";
if (moves == 1) {
if (d1 == 1 && d2 == 1) { // if both dice equal 1, set the score to equal 0
diceTotal = 0;
moves++;
score1 = score1 + diceTotal;
p1Score.innerHTML += score1;
status.innerHTML += " Your score has been reset to zero";
} else {
if(d1 == d2) { //if both dice are the same, double the players score
diceTotal = diceTotal*2;
moves++;
score1 = score1 + diceTotal;
p1Score.innerHTML += score1;
status.innerHTML += " Lucky! your total has been doubled to "+(diceTotal)+".";
} else{
moves++;
score1 = score1 + diceTotal;
p1Score.innerHTML += score1;
status.innerHTML += " Your Turn "+player2+".";
console.log(score1);
}
}
} else {
if (d1 == 1 && d2 == 1) { // if both dice equal 1, set the score to equal 0
diceTotal = 0;
moves++;
score2 = score2 + diceTotal;
p2Score.innerHTML += score2;
status.innerHTML += player2+" score has been reset to zero";
} else {
if(d1 == d2) { //if both dice are the same, double the players score
diceTotal = diceTotal*2;
moves++;
score2 = score2 + diceTotal;
p2Score.innerHTML += score2;
status.innerHTML += " Lucky! your total has been doubled to "+(diceTotal)+".";
} else{
moves++;
score2 = score2 + diceTotal;
p2Score.innerHTML += score2;
status.innerHTML += " Your Turn "+player1+".";
}
}
}
}
请原谅我草率的逻辑。我还是很新。欢迎任何提示、代码建议或建议
【问题讨论】:
-
这听起来像是Code Review 的完美问题。
-
它是否按预期工作?如果是这样,@DrewGaynor 是正确的。
-
目前不完全掷骰子工作,但计分和转身系统根本不工作
-
那你需要缩小问题范围,问一个更具体的问题;就目前而言,这个问题太宽泛无法成为话题。另外,请务必查看code-review 标签的标签 wiki ;-)
-
如果代码还没有工作(看起来是这样),请注意这将与 CodeReview.SE 无关。
标签: javascript function if-statement logic