Skip to content

[CPP14] リファレンス [v0.1.X]

Kasugaccho edited this page Mar 8, 2019 · 3 revisions

C++14

基本用語

地形変数(Dungeon Variable)

地形データの変数。 ここではdungeon_tと記載する。

使用例

using dungeon_t = std::uint_fast8_t;

地形生成クラス(Dungeon Template Class)

名前の通り地形を生成するクラスである。 例えばRogueLikeクラスやSimple Voronoi Islandクラスのことを指す。

宣言方法

地形変数をテンプレートに指定して宣言する。

dtl::RogueLike<dungeon_t> rogue_like;

宣言&生成

宣言時にコンストラクタで"地形配列"と"各地形生成クラスのパラメータ"を指定する。

dtl::RogueLike<dungeon_t> rogue_like(dungeon, 50);

生成

create関数で"地形配列"と"各地形生成クラスのパラメータ"を指定する。

rogue_like.create(dungeon, 50);

rl4

地形配列(Dungeon Matrix)

ダンジョンの地形データを格納する配列。 多くの場合、STLを使用する。

記事ではdungeonという名前で宣言する。

使用例(固定長配列)

std::array<std::array<dungeon_t, dungeon_size_x>, dungeon_size_y> dungeon{ {} };

使用例(可変長配列)

std::vector<std::vector<dungeon_t>> dungeon(dungeon_size_y, std::vector<dungeon_t>(dungeon_size_x, 0));

DungeonBinarization.hpp

地形配列の値を2値化する機能を提供するヘッダー。

ここでは指定する地形配列変数型をSTL_ 地形配列内部の整数型をInt_ と定義する。

value_区分

void dungeonBinarization(STL_& stl_, const Int_ value_);
void dungeonBinarization_RangeBasedFor(STL_& stl_, const Int_ value_);

配列内の値がvalue_以上の値の場合は1を代入し、それ以外の場合は0を代入する。 後者は範囲ベースfor版。

void dungeonBinarizationBool(STL_& stl_, STL2_& stl2_, const Int_ value_);

stl_配列内の値がvalue_以上の値の場合は、stl2_配列に1を代入し、それ以外の場合は0を代入する。

true区分

void dungeonBinarization(STL_& stl_);
void dungeonBinarization_RangeBasedFor(STL_& stl_);

配列内の値がtrueの場合は1を代入し、それ以外の場合は0を代入する。 後者は範囲ベースfor版。

void dungeonBinarizationBool(STL_& stl_, STL2_& stl2_);

stl_配列内の値がtrueの場合は、stl2_配列に1を代入し、それ以外の場合は0を代入する。

DungeonNoise.hpp

地形配列の値にノイズを発生させる機能を提供するヘッダー。

ここでは指定する地形配列変数型をSTL_ 地形配列内部の整数型をInt_ ノイズ発生確率をdoublerbool_ ノイズ発生の値置換をInt_true_tile_false_tile_ と定義する。

通常ノイズ(Bool版)

void noiseBool(STL_& stl_, const double rbool_, const Int_ true_tile_ = 1, const Int_ false_tile_ = 0);
void noiseBool_RangeBasedFor(STL_& stl_, const double rbool_, const Int_ true_tile_ = 1, const Int_ false_tile_ = 0);

ノイズ発生確率がtrueの時、 配列内の値がtrueの場合はfalse_tile_を代入し、falseの場合はtrue_tile_を代入する。 後者は範囲ベースfor版。

岸ノイズ(Bool版)

void noiseShoreBool(STL_& stl_, const double rbool_);
void rnoiseShoreBool(STL_& stl_, const double rbool_);

"ノイズ発生確率がtrue"かつ"隣接するマスの値が異なる(岸)"の時、 配列内の値がtrueの場合はfalseを代入し、falseの場合はtrueを代入する。

noiseShoreBoolは上方向からの探査、 rnoiseShoreBoolは下方向からの探査である。

roll.gif

void noiseShoreBothBool(STL_& stl_, const double rbool_);
void noiseShoreBothBool(STL_& stl_, const double rbool1_, const double rbool2_);
void rnoiseShoreBothBool(STL_& stl_, const double rbool_);
void rnoiseShoreBothBool(STL_& stl_, const double rbool1_, const double rbool2_);

noiseShoreBoolrnoiseShoreBoolの両方の操作を行う。

岸ノイズ

void noiseShore(STL_& stl_, const double rbool_, const Int_ true_tile_ = 1, const Int_ false_tile_ = 0);
void rnoiseShore(STL_& stl_, const double rbool_, const Int_ true_tile_ = 1, const Int_ false_tile_ = 0);

ノイズ発生確率がtrueかつ"隣接するマスの値が異なる(岸)"の時、 配列内の値がtrueの場合はfalse_tile_を代入し、falseの場合はtrue_tile_を代入する。

noiseShoreBoolは上方向からの探査、 rnoiseShoreBoolは下方向からの探査である。

void noiseShoreOver(STL_& stl_, const double rbool_, const Int_ true_tile_ = 1, const Int_ false_tile_ = 0);
void rnoiseShoreOver(STL_& stl_, const double rbool_, const Int_ true_tile_ = 1, const Int_ false_tile_ = 0);

当記事のライセンス

CC0

Clone this wiki locally