- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 JavaScript 构建一个扫雷游戏,但我一直坚持添加垂直炸弹威胁。
这是我的代码:
const generateBoardForPlay = function () {
const gameBoard = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
const generateBombs = function () {
return [
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)],
[getRandomInt(9), getRandomInt(9)]
]
}
const bombArr = generateBombs()
const addBombsToBoard = function (gameBoard) {
for (let x of bombArr) {
gameBoard[x[0]][x[1]] = "99"
}
return gameBoard
}
const board = addBombsToBoard(gameBoard)
// return board;
const addWarnings = function (array) {
for (let x in array) {
if (array[x] === '99' && x > 0 && array[x - 1] !== "99") {
array[x - 1] += 1
}
}
for (let i = array.length; i > 0; i--) {
if (array[i] === '99' && i < 9 && array[i + 1] !== "99") {
array[i + 1] += 1
}
}
return array
}
addWarnings(board[0])
addWarnings(board[1])
addWarnings(board[2])
addWarnings(board[3])
addWarnings(board[4])
addWarnings(board[5])
addWarnings(board[6])
addWarnings(board[7])
addWarnings(board[8])
addWarnings(board[9])
const addVerticalWarning = function (board) {
// THIS IS WHERE I'M STUCK
}
return board;
}
这是输出
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, '99', '99', '99', 1, 0, 0],
[0, 0, 1, '99', 1, 0, 0, 0, 0, 0],
[0, 1, '99', 1, 0, 0, 0, 1, '99', 1],
[0, 1, '99', 1, 0, 1, '99', 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, '99', 1, 0, 0, 0, 0, 0],
[1, '99', 1, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
我收到了水平炸弹威胁,但两个循环的复杂性阻止了我弄清楚水平炸弹威胁。我这样做是为了一项作业,所以我不想只是从其他地方复制并粘贴它。如果有一种方法可以完成代码,那就太棒了,如果没有,我想为我指明了正确的方向。
最佳答案
您的游戏板由嵌套在父数组中的 10 个并行数组组成。
这应该可以帮助您了解如何使用并行嵌套数组来访问彼此对应的值:
// Defines the gameBoard
let gameBoard = makeGameBoard();
// Loops through rows of the gameBoard
for (let rowIndex = 0; rowIndex < gameBoard.length; rowIndex++) {
// Defines the current row and its neighbors
let currentRow, previousRow, nextRow;
currentRow = gameBoard[rowIndex];
if(rowIndex > 0){ previousRow = gameBoard[rowIndex - 1]; }
if(rowIndex < gameBoard.length - 1){ nextRow = gameBoard[rowIndex + 1]; }
// Loops through the current row
for(let colIndex = 0; colIndex < currentRow.length; colIndex++){
// Logs what is in this column for this row and neighbors...
console.log(`row ${rowIndex}, col ${colIndex}: ${gameBoard[rowIndex][colIndex]}`);
if (previousRow){ console.log(`in square above: ${previousRow[colIndex]}`); }
else{ console.log("no square above first row"); }
if(nextRow) {console.log(`in square below: ${nextRow[colIndex]}`); }
else{console.log("no square below last row"); }
console.log("");
}
}
function makeGameBoard() {
return [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
];
}
关于javascript - 扫雷炸弹威胁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59851350/
过去我们多次收到有关 Java 威胁的警告,我们不得不升级,有时甚至摆脱 Java。 现在我正在考虑为 Android 设备开发,我发现它与 Java 密切相关。 我的问题:Java 威胁对 Andr
当我尝试访问应用程序的某些部分时,我的应用程序显示此错误。此外,当我尝试在 iPhone 6s 模拟器上运行它时,它不会显示此错误,但在所有其他模拟器上都会显示该错误 我使用 Firebase 作为后
来自 OAuth 2.0 Threat Model and Security Considerations draft : 4.4.1.13. Threat: Code substitution (O
我试图证明在 PHP 中准备语句的必要性,但我遇到了一点问题,因为 PHP 使用通过表单传递的字符串做了一些很奇怪的事情。 我试图“打破”的陈述很简单: SELECT username FROM us
我确实计划将数据库从 5.1 版迁移到 5.6 版。我想通过使用 mysqldump 来做到这一点: 将数据从 MySQL DB 5.1 导出(通过 mysqldump)到 sql 文件, 导入(通过
我有目的地(为了测试)在 WebMatrix C# 中分配了以下变量: string val = "alert('XSS Vector')"; 在页面的后面,我使用 razor 将该值直接写入页面。
为了拥有一个 URL 友好的应用程序,我正在存储它的上下文在 URL 中有一个 JSON,它给出类似的东西: http://mysite.dev/myapppage/target#?context={
用户正在向我们的 React 应用程序提供一个字符串,并且它正在显示给其他用户。我想搜索一些字符,并用一些 HTML 替换它们,就像我要搜索“特殊”这个词一样,我会将其变成: My special w
我是一名优秀的程序员,十分优秀!