-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcmode.h
60 lines (54 loc) · 1.43 KB
/
cmode.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#pragma once
#include "data.h"
namespace planet{
enum class CModeT{
AUTO,
MAN,
SCAN
};
class CMode{
public:
CMode(size_t id,
size_t idxInCollectors,
data& server);
virtual void func() = 0;
virtual ~CMode();
protected:
void goInRandWay();
Direction randWay();
bool isUnknownArea();
void scan();
size_t id;
size_t idxInCollectors;
data& server;
};
class ManualMode: public CMode{
public:
ManualMode(size_t id,
size_t idxInCollectors,
data& server);
void func() override;
~ManualMode() override;
};
class AutoMode: public CMode{
public:
AutoMode(size_t id,
size_t idxInCollectors,
data& server);
void func() override;
~AutoMode() override;
private:
bool standingOnApple();
bool isAnyAppleFound();
void collectNearest(Item item);
std::vector<std::vector<Direction>> way;
};
class ScanMode: public CMode{
public:
ScanMode(size_t id,
size_t idxInCollectors,
data& server);
void func() override;
~ScanMode() override;
};
}