用JavaScript写的21点游戏

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>21点游戏</title>
<script>
var bossInput;//庄家文本框的DOM对象
var playerInput;//玩家文本框的DOM对象
window.onload = function(){
var startBtn = document.getElementById("startGame");
var showBtn = document.getElementById("showCard");
var againBtn = document.getElementById("againCard");
bossInput = document.getElementById("boss");
playerInput = document.getElementById("player");

//让按钮不可用
// showBtn.disabled = false;

startBtn.onclick = start;
showBtn.onclick = showResult;
againBtn.onclick = again;
}
//生成[1,11]的随机整数
function getRandom(){
var random = Math.random();//0-1之间的随机数
var randomInt = parseInt(random*11 + 1);//[1,11]的随机整数
return randomInt;
}

//发牌
function start(){
//得到1-11的随机整数
var bossNum = getRandom();
var playerNum = getRandom();
//显示初始的点数
bossInput.value = bossNum;
playerInput.value = playerNum;
}

//亮牌
function showResult(){
//取出当前的庄家点数作累加(注意:是不停地累加,直到庄家的点数大于等于玩家的点数,那么就结束累加)
var bossNum = parseInt(bossInput.value);
var playerNum = parseInt(playerInput.value);
while(bossNum < playerNum){
bossNum = bossNum + getRandom();
}
//判断庄家的点数是否超过21点,如果超过,则显示庄家爆掉了;否则,庄家赢
if(bossNum > 21){
bossInput.value = bossNum;
alert("庄家爆掉了,你赢了!");
} else {
bossInput.value = bossNum;
alert("庄家赢了!");
}
}

//再来一张
function again(){
//为玩家生成1-11的随机整数
var random = getRandom();
//取出当前的玩家点数作累加(注意:每次累加的时候要作判断,超过21点以后,就退出游戏,玩家输了)
var playerNum = parseInt(playerInput.value) + random;
if(playerNum > 21){
alert("你爆掉了!");
playerInput.value = playerNum;
return;
}
//显示累加后的结果
playerInput.value = playerNum;
}
</script>
</head>
<body>
庄家有:<input id="boss" type="text" readonly />点<br/>
我有:<input id="player" type="text"readonly />点<br/>
<input id="againCard" type="button" value="再来一张"/>
<input id="showCard" type="button" value="亮牌"/>
<input id="startGame" type="button" value="重新发牌"/>


</body>
</html>

posted @ 2019-10-20 15:34  谢世林  阅读(438)  评论(0)    收藏  举报