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

<!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 str;
        }
        // 裁判
        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 computerNum = computer.random();
            
            let AA = 0;
            let BB = 0;
            if (reg.test(playerNum)) {
                let playerArr = playerNum.split('')
                let computerArr = computerNum.split('')
                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++;
                        }
                    }
                }
                if (AA == 4) {
                    result.innerText = '猜测正确'
                    return -1;
                }
                else {
                    error--;
                    if(error>0)
                    {
                    result.innerText = `猜测结果为:${AA}A${BB}B,你还有${error}次机会`
                    }
                }



            }
            else {
                result.innerText = '请输入正确数字'
            }
             return error;
        }
           return bibao();
        }
        let str = ''
        for (let i = 0; i < 4; i++) {
            str += parseInt(Math.random() * 10);
        }
        console.log(str);
        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>

猜你喜欢

转载自www.cnblogs.com/web--yang/p/9163489.html
今日推荐