Skip to content

Instantly share code, notes, and snippets.

@khayyamsaleem
Created September 12, 2017 02:47
Show Gist options
  • Save khayyamsaleem/22bfba42598dd7347e592056f77c9963 to your computer and use it in GitHub Desktop.
Save khayyamsaleem/22bfba42598dd7347e592056f77c9963 to your computer and use it in GitHub Desktop.
const generatePlayerBoard = (numberOfRows, numberOfColumns) => {
let board = [];
for(let numberOfRowsIndex=0; numberOfRowsIndex < numberOfRows; numberOfRowsIndex++){
let row =[];
for (let numberOfColumnsIndex = 0; numberOfColumnsIndex < numberOfColumns; numberOfColumnsIndex++) {
row.push(' ');
}
board.push(row);
}
return board;
};
//console.log(generatePlayerBoard(5,5))
const generateBombBoard = (numberOfRows, numberOfColumns, numberOfBombs) => {
let board = [];
for(let numberOfRowsIndex=0; numberOfRowsIndex < numberOfRows; numberOfRowsIndex++){
let row =[];
for (let numberOfColumnsIndex = 0; numberOfColumnsIndex < numberOfColumns; numberOfColumnsIndex++) {
row.push(" ");
}
board.push(row);
}
let numberOfBombsPlaced = 0;
while(numberOfBombsPlaced < numberOfBombs) {
let randomRowIndex = Math.floor(Math.random() * numberOfRows);
let randomColumnIndex = Math.floor(Math.random() * numberOfColumns);
if (board[randomRowIndex][randomColumnIndex] != 'B'){
board[randomRowIndex][randomColumnIndex] = 'B';
numberOfBombsPlaced++;
}
}
return board;
};
//console.log(generateBombBoard(5,5,5));
const getNumberOfNeighborBombs = (bombBoard, rowIndex, columnIndex) => {
const neighborsOffsets = [[-1,-1],[-1,0],[1,1],[1,0],[-1,1],[1,-1],[0,1],[0,-1]];
const numberOfRows = bombBoard.length;
const numberOfColumns = bombBoard[0].length;
let numberOfBombs = 0;
neighborOffsets.forEach(offset =>{
const neighborRowIndex = rowIndex += offset[0];
if (neighborRowIndex >= 0 && neighborRowIndex < numberOfRows && neighborColumnsIndex >= 0 && neighborColumnsIndex < numberOfColumns)
if(bombBoard[neighborRowIndex]['B'] == 'B'){
numberOfBombs++;
}
});
};
const printBoard = (board) => {console.log(board.map(row => row.join(' | ')).join('\n'))
}
let playerBoard = generatePlayerBoard(3,4);
let bombBoard = generateBombBoard(5,5,5);
console.log('Player Board: ');
printBoard(playerBoard);
console.log('Bomb Board: ');
printBoard(bombBoard);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment