From 5671543da463f291bca747b247d0a738f573c911 Mon Sep 17 00:00:00 2001 From: Paolo Capriotti Date: Wed, 1 Aug 2007 16:12:10 +0200 Subject: [PATCH] Added Crazyhouse stub. --- src/CMakeLists.txt | 2 ++ src/hlvariant/chess/variant.cpp | 2 +- src/hlvariant/crazyhouse/gamestate.h | 23 ++++++++++++++ src/hlvariant/{chess => crazyhouse}/variant.cpp | 5 ++- src/hlvariant/crazyhouse/variant.h | 42 +++++++++++++++++++++++++ src/variants/chess.cpp | 2 +- src/variants/crazyhouse.cpp | 2 +- src/variants/shogi.cpp | 2 +- src/variants/variants.cpp | 9 ++++++ tests/hlvariants/CMakeLists.txt | 1 + 10 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 src/hlvariant/crazyhouse/gamestate.h copy src/hlvariant/{chess => crazyhouse}/variant.cpp (85%) create mode 100644 src/hlvariant/crazyhouse/variant.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 366c518..b31a2d0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -35,6 +35,8 @@ set(tagua_SRC hlvariant/chess/move.cpp hlvariant/chess/gamestate.cpp hlvariant/chess/piece.cpp + + hlvariant/crazyhouse/variant.cpp animationfactory.cpp constrainedtext.cpp diff --git a/src/hlvariant/chess/variant.cpp b/src/hlvariant/chess/variant.cpp index d0b2a1b..5fda079 100644 --- a/src/hlvariant/chess/variant.cpp +++ b/src/hlvariant/chess/variant.cpp @@ -5,7 +5,7 @@ namespace HLVariant { namespace Chess { -const char* Variant::m_name = "Chess_NEW"; +const char* Variant::m_name = "Chess"; const char* Variant::m_theme_proxy = "Chess"; VariantInfo* Variant::static_chess_variant = 0; diff --git a/src/hlvariant/crazyhouse/gamestate.h b/src/hlvariant/crazyhouse/gamestate.h new file mode 100644 index 0000000..4c454be --- /dev/null +++ b/src/hlvariant/crazyhouse/gamestate.h @@ -0,0 +1,23 @@ +#ifndef HLVARIANT__CRAZYHOUSE__GAMESTATE_H +#define HLVARIANT__CRAZYHOUSE__GAMESTATE_H + +#include "../chess/gamestate.h" + +namespace HLVariant { +namespace Crazyhouse { + +template +class GameState : public HLVariant::Chess::GameState<_Board, _Move> { + typedef HLVariant::Chess::GameState<_Board, _Move> Base; +public: + typedef typename Base::Board Board; + typedef typename Base::Move Move; + typedef typename Base::Piece Piece; + typedef NoPool Pool; +}; + +} // namespace Crazyhouse +} // namespace HLVariant + +#endif // HLVARIANT__CRAZYHOUSE__GAMESTATE_H + diff --git a/src/hlvariant/chess/variant.cpp b/src/hlvariant/crazyhouse/variant.cpp similarity index 85% copy from src/hlvariant/chess/variant.cpp copy to src/hlvariant/crazyhouse/variant.cpp index d0b2a1b..90b3fbe 100644 --- a/src/hlvariant/chess/variant.cpp +++ b/src/hlvariant/crazyhouse/variant.cpp @@ -3,13 +3,12 @@ #include "../animator.impl.h" namespace HLVariant { -namespace Chess { +namespace Crazyhouse { -const char* Variant::m_name = "Chess_NEW"; +const char* Variant::m_name = "Crazyhouse"; const char* Variant::m_theme_proxy = "Chess"; VariantInfo* Variant::static_chess_variant = 0; - VariantInfo* Variant::info() { if (!static_chess_variant) static_chess_variant = new WrappedVariantInfo; diff --git a/src/hlvariant/crazyhouse/variant.h b/src/hlvariant/crazyhouse/variant.h new file mode 100644 index 0000000..4b99a38 --- /dev/null +++ b/src/hlvariant/crazyhouse/variant.h @@ -0,0 +1,42 @@ +#ifndef HLVARIANT__CRAZYHOUSE__VARIANT_H +#define HLVARIANT__CRAZYHOUSE__VARIANT_H + +#include "../chess/movegenerator.h" +#include "../chess/serializer.h" +#include "gamestate.h" +#include "export.h" +#include "option.h" +#include "../animator.h" + +class VariantInfo; + +namespace HLVariant { +namespace Crazyhouse { + +struct TAGUA_EXPORT Variant { + typedef Chess::Move Move; + typedef Chess::Piece Piece; + typedef Board Board; + typedef GameState GameState; + typedef Chess::LegalityCheck LegalityCheck; + typedef Chess::MoveGenerator MoveGenerator; + typedef Chess::Serializer Serializer; + typedef SimpleAnimator Animator; + + static const bool hasICS = false; + static const bool m_simple_moves = false; + static const char *m_name; + static const char *m_theme_proxy; + + static int moveListLayout() { return 0; } + + static VariantInfo* static_chess_variant; + static VariantInfo* info(); + static OptList positionOptions() { return OptList(); } + +}; + +} // namespace Chess +} // namespace HLVariant + +#endif // HLVARIANT__CRAZYHOUSE__VARIANT_H diff --git a/src/variants/chess.cpp b/src/variants/chess.cpp index dd50e75..bab064e 100644 --- a/src/variants/chess.cpp +++ b/src/variants/chess.cpp @@ -22,7 +22,7 @@ using namespace boost; typedef boost::shared_ptr AnimationPtr; -const char *ChessVariant::m_name = "Chess"; +const char *ChessVariant::m_name = "Chess_OLD"; const char *ChessVariant::m_theme_proxy = "Chess"; VariantInfo* ChessVariant::static_chess_variant = 0; diff --git a/src/variants/crazyhouse.cpp b/src/variants/crazyhouse.cpp index 01586a7..1333c7c 100644 --- a/src/variants/crazyhouse.cpp +++ b/src/variants/crazyhouse.cpp @@ -258,7 +258,7 @@ public: //BEGIN CrazyhouseVariant -const char *CrazyhouseVariantInfo::m_name = "Crazyhouse"; +const char *CrazyhouseVariantInfo::m_name = "Crazyhouse_OLD"; const char *CrazyhouseVariantInfo::m_theme_proxy = "Chess"; VariantInfo* CrazyhouseVariant::static_crazyhouse_variant = 0; diff --git a/src/variants/shogi.cpp b/src/variants/shogi.cpp index c6899c3..6f13a40 100644 --- a/src/variants/shogi.cpp +++ b/src/variants/shogi.cpp @@ -618,7 +618,7 @@ public: static const char *m_theme_proxy; }; -const char *ShogiVariantInfo::m_name = "Shogi"; +const char *ShogiVariantInfo::m_name = "Shogi_OLD"; const char *ShogiVariantInfo::m_theme_proxy = "Shogi"; diff --git a/src/variants/variants.cpp b/src/variants/variants.cpp index e1f8337..bec5229 100644 --- a/src/variants/variants.cpp +++ b/src/variants/variants.cpp @@ -14,6 +14,14 @@ #include "variants/crazyhouse.h" #include "variants/shogi.h" #include "hlvariant/chess/variant.h" +#include "hlvariant/crazyhouse/variant.h" + +// remove me +namespace HLVariant { +namespace Crazyhouse { +class Variant; +} +} #if 0 #include "variants/atomic.h" @@ -52,6 +60,7 @@ void Variant::initialize() { register_variant(); // register_variant(); register_variant(); + register_variant(); s_initialized = true; } diff --git a/tests/hlvariants/CMakeLists.txt b/tests/hlvariants/CMakeLists.txt index 6e7c392..51e922b 100644 --- a/tests/hlvariants/CMakeLists.txt +++ b/tests/hlvariants/CMakeLists.txt @@ -9,6 +9,7 @@ SET(hl_SRC chesslegalitytest.cpp chesswrappedtest.cpp chessserializationtest.cpp + pooltest.cpp ) include_directories( -- 2.11.4.GIT