Browse Source

🦄 refactor(API): 在API.cpp实现了一些函数

tags/0.1.0
wihn2021 3 years ago
parent
commit
4d765b4f8e
2 changed files with 129 additions and 9 deletions
  1. +5
    -5
      CAPI/API/include/API.h
  2. +124
    -4
      CAPI/API/src/API.cpp

+ 5
- 5
CAPI/API/include/API.h View File

@@ -79,7 +79,7 @@ public:
virtual std::future<bool> MoveDown(int64_t timeInMilliseconds) = 0;

// 捡道具、使用技能
virtual std::future<bool> PickProp() = 0;
virtual std::future<bool> PickProp(THUAI6::PropType prop) = 0;
virtual std::future<bool> UseProp() = 0;
virtual std::future<bool> UseSkill() = 0;

@@ -192,7 +192,7 @@ public:
{
}

std::future<bool> PickProp() override
std::future<bool> PickProp(THUAI6::PropType prop) override
{
}
std::future<bool> UseProp() override
@@ -303,7 +303,7 @@ public:
{
}

std::future<bool> PickProp() override
std::future<bool> PickProp(THUAI6::PropType prop) override
{
}
std::future<bool> UseProp() override
@@ -405,7 +405,7 @@ public:
{
}

std::future<bool> PickProp() override
std::future<bool> PickProp(THUAI6::PropType prop) override
{
}
std::future<bool> UseProp() override
@@ -516,7 +516,7 @@ public:
{
}

std::future<bool> PickProp() override
std::future<bool> PickProp(THUAI6::PropType prop) override
{
}
std::future<bool> UseProp() override


+ 124
- 4
CAPI/API/src/API.cpp View File

@@ -1,5 +1,6 @@
#include "AI.h"
#include "API.h"
#define PI 3.14159265358979323846

std::future<bool> HumanAPI::Move(int64_t timeInMilliseconds, double angleInRadian)
{
@@ -7,17 +8,136 @@ std::future<bool> HumanAPI::Move(int64_t timeInMilliseconds, double angleInRadia
{ return logic.Move(timeInMilliseconds, angleInRadian); });
}

void HumanAPI::Play(IAI& ai)
std::future<bool> HumanAPI::MoveDown(int64_t timeInMilliseconds)
{
ai.play(*this);
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, 0); });
}

void ButcherAPI::Play(IAI& ai)
std::future<bool> HumanAPI::MoveRight(int64_t timeInMilliseconds)
{
ai.play(*this);
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, PI * 0.5); });
}

std::future<bool> HumanAPI::MoveUp(int64_t timeInMilliseconds)
{
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, PI); });
}

std::future<bool> HumanAPI::MoveLeft(int64_t timeInMilliseconds)
{
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, PI * 1.5); });
}

std::future<bool> ButcherAPI::Move(int64_t timeInMilliseconds, double angleInRadian)
{
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, angleInRadian); });
}

std::future<bool> ButcherAPI::MoveDown(int64_t timeInMilliseconds)
{
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, 0); });
}

std::future<bool> ButcherAPI::MoveRight(int64_t timeInMilliseconds)
{
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, PI * 0.5); });
}

std::future<bool> ButcherAPI::MoveUp(int64_t timeInMilliseconds)
{
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, PI); });
}

std::future<bool> ButcherAPI::MoveLeft(int64_t timeInMilliseconds)
{
return std::async(std::launch::async, [&]()
{ return logic.Move(timeInMilliseconds, PI * 1.5); });
}

std::future<bool> HumanAPI::PickProp(THUAI6::PropType prop)
{
return std::async(std::launch::async, [&]()
{ return logic.PickProp(prop); });
}

std::future<bool> HumanAPI::UseProp()
{
return std::async(std::launch::async, [&]()
{ return logic.UseProp(); });
}

std::future<bool> ButcherAPI::PickProp(THUAI6::PropType prop)
{
return std::async(std::launch::async, [&]()
{ return logic.PickProp(prop); });
}

std::future<bool> ButcherAPI::UseProp()
{
return std::async(std::launch::async, [&]()
{ return logic.UseProp(); });
}

std::future<bool> HumanAPI::UseSkill()
{
return std::async(std::launch::async, [&]()
{ return logic.UseSkill(); });
}

std::future<bool> ButcherAPI::UseSkill()
{
return std::async(std::launch::async, [&]()
{ return logic.UseSkill(); });
}

std::future<bool> HumanAPI::SendMessage(int64_t toID, std::string message)
{
return std::async(std::launch::async, [&]()
{ return logic.SendMessage(toID, message); });
}

std::future<bool> ButcherAPI::SendMessage(int64_t toID, std::string message)
{
return std::async(std::launch::async, [&]()
{ return logic.SendMessage(toID, message); });
}

std::vector<std::shared_ptr<const THUAI6::Butcher>> HumanAPI::GetButcher() const
{
return logic.GetButchers();
}

std::vector<std::shared_ptr<const THUAI6::Human>> HumanAPI::GetHuman() const
{
return logic.GetHumans();
}

std::vector<std::shared_ptr<const THUAI6::Prop>> HumanAPI::GetProps() const
{
return logic.GetProps();
}

std::vector<std::vector<THUAI6::PlaceType>> HumanAPI::GetFullMap() const
{
return logic.GetFullMap();
}

void HumanAPI::Play(IAI& ai)
{
ai.play(*this);
}

void ButcherAPI::Play(IAI& ai)
{
ai.play(*this);
}



Loading…
Cancel
Save