Last active
November 19, 2015 07:53
-
-
Save dydx/59570ca7d18f23195330 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Josh Sandlin <josh@thenullbyte.org> | |
// Code for WDI-Fundamentls Exercises: 6.1.1, 6.2.1, 6.3.1 | |
// Linted with the Standard JS Linter | |
var checkerboard = [ | |
[null, null, null, null, null, null, null, null], | |
[null, null, null, null, null, null, null, null], | |
[null, null, null, null, null, null, null, null], | |
[null, null, null, null, null, null, null, null], | |
[null, null, null, null, null, null, null, null], | |
[null, null, null, null, null, null, null, null], | |
[null, null, null, null, null, null, null, null], | |
[null, null, null, null, null, null, null, null] | |
] | |
// eh | |
function setSquare (player, row, col) { | |
checkerboard[row - 1][col - 1] = player | |
} | |
// eh | |
function getPieceAt (row, col) { | |
return checkerboard[row - 1][col - 1] | |
} | |
// good | |
function clearBoard (board) { | |
return board.map(function (row) { | |
return row.map(function (col) { | |
return null | |
}) | |
}) | |
} | |
// good | |
function setUpSide (player, row, col) { | |
if (row % 2 === 0) { | |
if (col % 2 === 0) { | |
return player | |
} else { | |
return null | |
} | |
} else { | |
if (col % 2 !== 0) { | |
return player | |
} else { | |
return null | |
} | |
} | |
} | |
// good | |
function setUpRed (row, col) { | |
return setUpSide('R', row, col) | |
} | |
// good | |
function setUpBlack (row, col) { | |
return setUpSide('B', row, col) | |
} | |
// good | |
function setUpBoard (board) { | |
return board.map(function (row, row_index) { | |
return row.map(function (col, col_index) { | |
if (row_index <= 2) { | |
// set up red half | |
return setUpRed(row_index, col_index) | |
} else if (row_index >= 5) { | |
// set up black half | |
return setUpBlack(row_index, col_index) | |
} else { | |
return null | |
} | |
}) | |
}) | |
} | |
// ----- check our work ----- // | |
var checkerboard = setUpBoard(checkerboard) | |
console.log(checkerboard) | |
var pieces = {} | |
pieces['red'] = [] | |
pieces['black'] = [] | |
for (var i = 0; i <= 7; i++) { | |
for (var j = 0; j <= 7; j++) { | |
if (checkerboard[i][j] === 'R') { | |
pieces['red'].push([i, j]) | |
} else if (checkerboard[i][j] === 'B') { | |
pieces['black'].push([i, j]) | |
} | |
} | |
} | |
console.log(pieces['red'].map(function (piece) { | |
var row = piece[0] | |
var col = piece[1] | |
return checkerboard[row][col] === 'R' | |
})) | |
console.log(pieces['black'].map(function (piece) { | |
var row = piece[0] | |
var col = piece[1] | |
return checkerboard[row][col] === 'B' | |
})) |
Author
dydx
commented
Nov 19, 2015
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment