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;