猜数字游戏,面向对象编程~

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>

<body>

<input type="text" value="">
<button>猜数字</button>
<p></p>


<script>
window.onload = function () {

// 玩家
function Player() {
this.name;
}
// 玩家猜数字
Player.prototype.guess = function () {
let input = document.querySelector('input')
return input.value;


}
// 电脑
function Computer() {
this.name;
}
// 电脑产生数字
Computer.prototype.random = function () {
return randomArr;
}
// 裁判
function Judg() {
this.player = new Player();
this.computer = new Computer();

}
// 判断猜测结果
let error = 9;
Judg.prototype.compare = function () {

let player = this.player;
let computer = this.computer;
function bibao() {
let result = document.querySelector('p');
let reg = /^\d{4}$/
let playerNum = player.guess();
let computerArr = computer.random();

let AA = 0;
let BB = 0;
if (reg.test(playerNum)) {
let playerArr = playerNum.split('')
if (!playerArr.every(function (item, index) {
return playerArr.indexOf(item) === index
})) { result.innerText = '请输入不重复数字' }
else {

for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
if (playerArr[i] === computerArr[j] && i == j) {
AA++;
}
else if (playerArr[i] === computerArr[j] && i !== j) {
BB++;
break;
}
}
}
if (AA == 4) {
result.innerText = '猜测正确'

}
else {
error--;
if (error > 0) {
result.innerText = `猜测结果为:${AA}A${BB}B,你还有${error}次机会`
}
}


}
}

else {
result.innerText = '请输入正确数字'
}
return error;
}
return bibao();
}
let randomArr = [];
while (true) {
let randomNum = parseInt(Math.random() * 10);
if ((!randomArr.includes(randomNum))) {
randomArr.push(randomNum);
}


if (randomArr.length == 4) {
break;
}
}
console.log(randomArr)
let judg = new Judg();
let compare = document.querySelector('button')
compare.onclick = function () {
let error = judg.compare();
let result = document.querySelector('p');
if (error <= 0) {
compare.disabled = true;
result.innerText = '游戏结束,少侠请重新来过!'
}
}


}
</script>
</body>

</html>
posted @ 2018-06-10 16:00  web__yang  阅读(755)  评论(0编辑  收藏  举报