问答

js写的扫雷,连续刷新会出现几次Uncaught TypeError。这是什么原

作者:admin 2021-09-23 我要评论

连续刷新会产生如下结果。。。 第一次 第二次 第三次 第四次 第五次 看代码index.html body script src="index.js"/script/body index.js var game = [];var siz...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

连续刷新会产生如下结果。。。
第一次
image.png
第二次
image.png
第三次
image.png
第四次
image.png
第五次
image.png

看代码index.html

<body>
    <script src="index.js"></script>
</body>

index.js

var game = [];
var size = 10;//游戏界面大小
var boomNum = 10;//炸弹数量
var boomPoint = [];
//用for循环创建游戏界面
for(let i=0;i<size;i++){
    //游戏界面是二维数组
    game.push(
        //Array是数组构造器
        //Array(10)是创建一个长度为10的空数组
        //fill(arg)以参数来填充数组
        Array(size).fill(0)
    );
}
//初始化炸弹位置
function initBoom(){
    //当前放置的炸弹数
    var nowBoomNum = 0;
    //随即坐标(x,y)
    var randomX,randomY;
    //当前炸弹数小于目标炸弹数找随机位置
    while(nowBoomNum<boomNum){
        randomX = parseInt(Math.random()*size);  
        randomY = parseInt(Math.random()*size);
        if(game[randomX][randomY]===0){
            //炸弹标志数字大于8即可
            game[randomX][randomY] = 9;
            nowBoomNum++;
            boomPoint.push([randomX,randomY]);
        } 
    }
}

//初始化炸弹周围的数字
function initDispalyNum(){
    while(boomNum--){
        var [boomX,boomY]=boomPoint[boomNum];
        for(var x = boomX - 1 ; x <= boomX + 1 ; x++){
            if(x<0||x>size){
                continue;
            }
            for(var y=boomY-1;y<=boomY+1;y++){
                if(y<0||y>size-1||game[x][y]===9){
                    continue;
                }
                 game[x][y]++;
            }
        }
    }
}

initBoom();
initDispalyNum();
console.log(game);
console.log(boomPoint);

既能正常显示,又会偶尔报错?!为什么?

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • js写的扫雷,连续刷新会出现几次Uncaug

    js写的扫雷,连续刷新会出现几次Uncaug

  • photoClip在微信下缩放失效

    photoClip在微信下缩放失效

  • React项目在开发环境webpack-dev-serve

    React项目在开发环境webpack-dev-serve

  • workerman 跑了好几天的服务器突然就连

    workerman 跑了好几天的服务器突然就连

腾讯云代理商
海外云服务器