猜數字遊戲,面向對象編程~

<!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>
相關文章
相關標籤/搜索