Action.cpp
//------------------------------------------------------------------------------
/// @file
/// @author ハル研究所プログラミングコンテスト実行委員会
///
/// @copyright Copyright (c) 2018 HAL Laboratory, Inc.
/// @attention このファイルの利用は、同梱のREADMEにある
/// 利用条件に従ってください。
//------------------------------------------------------------------------------
#pragma once
#include "Action.hpp"
//------------------------------------------------------------------------------
namespace hpc {
//------------------------------------------------------------------------------
Action Action::Put(
CandidateLaneType aCandidateLaneType,
int aPieceIndex,
const Vector2i& aPutPos
)
{
Action action;
action.mType = ActionType_Put;
action.mCandidateLaneType = aCandidateLaneType;
action.mPieceIndex = aPieceIndex;
action.mPutPos = aPutPos;
return action;
}
//------------------------------------------------------------------------------
Action Action::Wait()
{
Action action;
action.mType = ActionType_Wait;
return action;
}
//------------------------------------------------------------------------------
Action::Action()
: mType(ActionType_Wait)
, mCandidateLaneType(CandidateLaneType_Small)
, mPieceIndex()
, mPutPos()
{
}
//------------------------------------------------------------------------------
ActionType Action::type() const
{
return mType;
}
//------------------------------------------------------------------------------
bool Action::isWaiting() const
{
return type() == ActionType_Wait;
}
//------------------------------------------------------------------------------
CandidateLaneType Action::candidateLaneType() const
{
return mCandidateLaneType;
}
//------------------------------------------------------------------------------
int Action::pieceIndex() const
{
return mPieceIndex;
}
//------------------------------------------------------------------------------
Vector2i Action::putPos() const
{
return mPutPos;
}
} // namespace
// EOF