forked from Cryolite/kanachan
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpaishan.hpp
42 lines (26 loc) · 876 Bytes
/
paishan.hpp
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
#if !defined(KANACHAN_SIMULATION_PAISHAN_HPP_INCLUDE_GUARD)
#define KANACHAN_SIMULATION_PAISHAN_HPP_INCLUDE_GUARD
#include <boost/python/list.hpp>
#include <vector>
#include <array>
#include <cstdint>
namespace Kanachan{
class Paishan;
void swap(Paishan &lhs, Paishan &rhs) noexcept;
class Paishan
{
public:
explicit Paishan(std::vector<std::uint_least32_t> const &seed);
explicit Paishan(boost::python::list paishan);
Paishan(Paishan const &rhs) = default;
Paishan(Paishan &&rhs) = default;
void swap(Paishan &rhs) noexcept;
Paishan &operator=(Paishan const &rhs);
Paishan &operator=(Paishan &&rhs) noexcept;
public:
std::uint_fast8_t operator[](std::uint_fast8_t index) const;
private:
std::array<std::uint_fast8_t, 136u> tiles_;
}; // class Paishan
} // namespace Kanachan
#endif // !defined(KANACHAN_SIMULATION_PAISHAN_HPP_INCLUDE_GUARD)