diff --git a/app/components/chess-board-square.js b/app/components/chess-board-square.js index 1eb687d..7bcb777 100644 --- a/app/components/chess-board-square.js +++ b/app/components/chess-board-square.js @@ -9,7 +9,7 @@ class ChessBoardSquare extends React.Component { } selectSquare() { - console.log(`Clicked: ${this.props.rank}, ${this.props.file}`); + console.log(`Clicked: ${this.props.file}${this.props.rank}`); }; render() { diff --git a/app/components/chess-board.js b/app/components/chess-board.js index e000fda..3850574 100644 --- a/app/components/chess-board.js +++ b/app/components/chess-board.js @@ -12,13 +12,11 @@ class ChessBoard extends React.Component { return store.getState().board; } - chessBoardRow(row, i) { + chessBoardRow(row, rank) { return ( -
- {row.map( - (square, j) => ( - - ) +
+ {Object.keys(row).map( + (file) => )}
) @@ -27,7 +25,9 @@ class ChessBoard extends React.Component { render() { return (
- {this.chessBoardRows().map((row, i) => this.chessBoardRow(row, i))} + {Object.keys(this.chessBoardRows()).reverse().map( + (rank) => this.chessBoardRow(this.chessBoardRows()[rank], rank) + )}
); } diff --git a/app/reducers/chess-board.js b/app/reducers/chess-board.js index 97e43ca..831d522 100644 --- a/app/reducers/chess-board.js +++ b/app/reducers/chess-board.js @@ -8,6 +8,12 @@ const chessBoardReducer = (state = defaultState, action) => { state.board[from.rank][from.file] = null; return state; + var newBoard = state.board.map((item, index) => { + }); + return Object.assign({}, state, { + board: newBoard + }); + case "SELECT_PIECE": return Object.assign({}, state, { selectedSquare: action.coords }); diff --git a/app/store/default-state.js b/app/store/default-state.js index 6755401..69620b7 100644 --- a/app/store/default-state.js +++ b/app/store/default-state.js @@ -1,52 +1,52 @@ const defaultState = { selectedSquare: null, - board: [ - [ - { type: "rook", colour: "black" }, - { type: "knight", colour: "black" }, - { type: "bishop", colour: "black" }, - { type: "queen", colour: "black" }, - { type: "king", colour: "black" }, - { type: "bishop", colour: "black" }, - { type: "knight", colour: "black" }, - { type: "rook", colour: "black" }, - ], - [ - { type: "pawn", colour: "black" }, - { type: "pawn", colour: "black" }, - { type: "pawn", colour: "black" }, - { type: "pawn", colour: "black" }, - { type: "pawn", colour: "black" }, - { type: "pawn", colour: "black" }, - { type: "pawn", colour: "black" }, - { type: "pawn", colour: "black" }, - ], - [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], - [ - { type: "pawn", colour: "white" }, - { type: "pawn", colour: "white" }, - { type: "pawn", colour: "white" }, - { type: "pawn", colour: "white" }, - { type: "pawn", colour: "white" }, - { type: "pawn", colour: "white" }, - { type: "pawn", colour: "white" }, - { type: "pawn", colour: "white" }, - ], - [ - { type: "rook", colour: "white" }, - { type: "knight", colour: "white" }, - { type: "bishop", colour: "white" }, - { type: "queen", colour: "white" }, - { type: "king", colour: "white" }, - { type: "bishop", colour: "white" }, - { type: "knight", colour: "white" }, - { type: "rook", colour: "white" }, - ], - ], + board: { + 8: { + a: { type: "rook", colour: "black" }, + b: { type: "knight", colour: "black" }, + c: { type: "bishop", colour: "black" }, + d: { type: "queen", colour: "black" }, + e: { type: "king", colour: "black" }, + f: { type: "bishop", colour: "black" }, + g: { type: "knight", colour: "black" }, + h: { type: "rook", colour: "black" } + }, + 7: { + a: { type: "pawn", colour: "black" }, + b: { type: "pawn", colour: "black" }, + c: { type: "pawn", colour: "black" }, + d: { type: "pawn", colour: "black" }, + e: { type: "pawn", colour: "black" }, + f: { type: "pawn", colour: "black" }, + g: { type: "pawn", colour: "black" }, + h: { type: "pawn", colour: "black" } + }, + 6: { a: null, b: null, c: null, d: null, e: null, f: null, g: null, h: null }, + 5: { a: null, b: null, c: null, d: null, e: null, f: null, g: null, h: null }, + 4: { a: null, b: null, c: null, d: null, e: null, f: null, g: null, h: null }, + 3: { a: null, b: null, c: null, d: null, e: null, f: null, g: null, h: null }, + 2: { + a: { type: "pawn", colour: "white" }, + b: { type: "pawn", colour: "white" }, + c: { type: "pawn", colour: "white" }, + d: { type: "pawn", colour: "white" }, + e: { type: "pawn", colour: "white" }, + f: { type: "pawn", colour: "white" }, + g: { type: "pawn", colour: "white" }, + h: { type: "pawn", colour: "white" } + }, + 1: { + a: { type: "rook", colour: "white" }, + b: { type: "knight", colour: "white" }, + c: { type: "bishop", colour: "white" }, + d: { type: "queen", colour: "white" }, + e: { type: "king", colour: "white" }, + f: { type: "bishop", colour: "white" }, + g: { type: "knight", colour: "white" }, + h: { type: "rook", colour: "white" } + } + } }; export default defaultState;