From 950e7a86f191d838a3e54728add5d9e7a7b1de7d Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Fri, 11 May 2018 11:18:59 -0400 Subject: [PATCH] Indicate captures --- assets/js/components/move-list.js | 10 +++++++--- lib/chess/store/move.ex | 1 + test/chess/move_list_test.exs | 3 +++ test/chess/store/move_test.exs | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/assets/js/components/move-list.js b/assets/js/components/move-list.js index 0f11cb0..25a16e3 100644 --- a/assets/js/components/move-list.js +++ b/assets/js/components/move-list.js @@ -18,10 +18,14 @@ const pieceToNotation = (piece) => { const renderMove = (move) => { if (move != undefined) { return ( - {pieceToNotation(move.piece)}{move.to} - ) + + {pieceToNotation(move.piece)} + {move.piece_captured ? "x" : ""} + {move.to} + + ); } -} +}; const renderMoves = (moves) => { return _.map(moves, (move) => { diff --git a/lib/chess/store/move.ex b/lib/chess/store/move.ex index d9fac62..d6069d3 100644 --- a/lib/chess/store/move.ex +++ b/lib/chess/store/move.ex @@ -31,6 +31,7 @@ defmodule Chess.Store.Move do %{ id: move.id, piece: move.piece, + piece_captured: move.piece_captured, from: <<97 + move.from["file"], 49 + move.from["rank"]>>, to: <<97 + move.to["file"], 49 + move.to["rank"]>>, } diff --git a/test/chess/move_list_test.exs b/test/chess/move_list_test.exs index 9f19584..9b7e2a8 100644 --- a/test/chess/move_list_test.exs +++ b/test/chess/move_list_test.exs @@ -31,12 +31,14 @@ defmodule Chess.MoveListTest do %{ id: nil, piece: %{"type" => "pawn", "colour" => "white"}, + piece_captured: nil, from: "e2", to: "e4" }, %{ id: nil, piece: %{"type" => "pawn", "colour" => "black"}, + piece_captured: nil, from: "e7", to: "e5" } @@ -45,6 +47,7 @@ defmodule Chess.MoveListTest do %{ id: nil, piece: %{"type" => "knight", "colour" => "white"}, + piece_captured: nil, from: "b1", to: "c3" } diff --git a/test/chess/store/move_test.exs b/test/chess/store/move_test.exs index c0aba46..3295034 100644 --- a/test/chess/store/move_test.exs +++ b/test/chess/store/move_test.exs @@ -82,6 +82,7 @@ defmodule Chess.Store.MoveTest do test "translates a move" do move = %Move{ piece: %{"type" => "pawn", "colour" => "white"}, + piece_captured: %{"type" => "pawn", "colour" => "black"}, from: %{"file" => 4, "rank" => 1}, to: %{"file" => 4, "rank" => 3}, } @@ -89,6 +90,7 @@ defmodule Chess.Store.MoveTest do assert Move.transform(move) == %{ id: nil, piece: %{"type" => "pawn", "colour" => "white"}, + piece_captured: %{"type" => "pawn", "colour" => "black"}, from: "e2", to: "e4" }