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
91 | |
Decode Ways 23.1% Medium | |
15 | |
3Sum 25.1% Medium | |
127 | |
Word Ladder 26.2% Medium | |
98 | |
Validate Binary Search Tree 26.6% Medium | |
179 | |
Largest Number 26.8% Medium |
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
import { Set } from 'immutable'; | |
/** | |
* give the coordinate update the current board with a number choice | |
* @param x | |
* @param y | |
* @param number | |
* @param fill whether to set or unset | |
* @param board the immutable board given to change | |
*/ | |
function updateBoardWithNumber({ |
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
import { List, fromJS } from 'immutable'; | |
/** | |
* make size 9 array of 0s | |
* @returns {Array} | |
*/ | |
function makeCountObject() { | |
const countObj = []; | |
for (let i = 0; i < 10; i += 1) countObj.push(0); | |
return countObj; | |
} |
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
import { List } from 'immutable'; | |
class Game extends Compoent { | |
constructor(props) { | |
super(props); | |
this.generateGame(); | |
} | |
generateGame = (finalCount = 20) => { | |
// get a filled puzzle generated |
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
class Game extends Compoent { | |
... | |
renderActions() { | |
const { history } = this.state; | |
const selectedCell = this.getSelectedCell(); | |
const prefilled = selectedCell && selectedCell.get('prefilled'); | |
return ( | |
<div className="actions"> | |
<div className="action" onClick={history.size ? this.undo : null}> | |
<ReloadIcon />Undo |
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
const Cell = (props) => { | |
const { | |
value, onClick, isPeer, isSelected, sameValue, prefilled, notes, conflict, | |
} = props; | |
const backgroundColor = getBackGroundColor({ | |
conflict, isPeer, sameValue, isSelected, | |
}); | |
const fontColor = getFontColor({ conflict, prefilled, value }); | |
return ( | |
<div className="cell" onClick={onClick}> |
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
export function isPeer(a, b) { | |
if (!a || !b) return false; | |
const squareA = ((Math.floor(a.x / 3)) * 3) + Math.floor(a.y / 3); | |
const squareB = ((Math.floor(b.x / 3)) * 3) + Math.floor(b.y / 3); | |
return a.x === b.x || a.y === b.y || squareA === squareB; | |
} | |
class Game extends Compoent { | |
... | |
isConflict(i, j) { |
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
function getNumberOfGroupsAssignedForNumber(number, groups) { | |
return groups.reduce((accumulator, row) => | |
accumulator + (row.get(number) > 0 ? 1 : 0), 0); | |
} | |
class Game extends Compoent { | |
... | |
// get the min between its completion in rows, columns and squares. | |
getNumberValueCount(number) { | |
const rows = this.state.board.getIn(['choices', 'rows']); | |
const columns = this.state.board.getIn(['choices', 'columns']); |
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
class Game extends Compoent { | |
... | |
renderNumberControl() { | |
const selectedCell = this.getSelectedCell(); | |
const prefilled = selectedCell && selectedCell.get('prefilled'); | |
return ( | |
<div className="control"> | |
{range(9).map((i) => { | |
const number = i + 1; | |
// handles binding single click and double click callbacks |
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
class Game extends Compoent { | |
... | |
eraseSelected = () => { | |
const selectedCell = this.getSelectedCell(); | |
if (!selectedCell) return; | |
this.fillNumber(false); | |
} | |
fillSelectedWithSolution = () => { | |
const { board, solution } = this.state; |
NewerOlder