为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个返回坐标的函数有时会返回超出其假定限制的坐标?

为什么这个返回坐标的函数有时会返回超出其假定限制的坐标?

收到一只叮咚 2021-06-08 09:00:01
作为练习,我正在构建经典 Nibbles/Snake 游戏的克隆。游戏区域由一个二维数组(行和列)组成,玩家蛇由另一个二维数组组成,其中包含蛇当前占据的游戏区域中每个单元格的坐标。然后我有一个函数来创建蛇应该吃的苹果。此函数返回一个简单的数组,其中包含一个 x 坐标和一个 y 坐标,用于指定放置苹果的游戏区域单元格。这个单元格当然永远不应该是玩家蛇在创建苹果时占据的单元格之一。但是,我构建的函数有时会在玩家蛇当前占据的单元格中创建一个苹果。任何人都可以发现错误吗?这是相关代码:const rows = 20;const cols = 26;const cells = createCells(rows, cols);let player = [[1,1], [1,2], [1,3], [1,4]];let apple = createApple(cells, player);function createCells(rows, cols) {    let cells = new Array(rows);    for (let r = 0; r < cells.length; r++) {        cells[r] = new Array(cols);    }    return cells;}function createApple(cells, player) {    let positions = new Array();    for (let r = 0; r < cells.length; r++) {        for (let c = 0; c < cells[r].length; c++) {            for (let p = 0; p < player.length; p++) {                if (!(player[p][0] === r && player[p][1] === c)) {                    positions.push([r, c]);                }            }        }    }    let random = Math.floor(Math.random() * positions.length - 1);    let apple = positions[random];    return apple;}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信