-
-
Notifications
You must be signed in to change notification settings - Fork 86
[CPP14] リファレンス [v0.1.X]
地形データの変数。
ここではdungeon_t
と記載する。
using dungeon_t = std::uint_fast8_t;
名前の通り地形を生成するクラスである。
例えばRogueLike
クラスやSimple Voronoi Island
クラスのことを指す。
地形変数をテンプレートに指定して宣言する。
dtl::RogueLike<dungeon_t> rogue_like;
宣言時にコンストラクタで"地形配列"と"各地形生成クラスのパラメータ"を指定する。
dtl::RogueLike<dungeon_t> rogue_like(dungeon, 50);
create関数で"地形配列"と"各地形生成クラスのパラメータ"を指定する。
rogue_like.create(dungeon, 50);
ダンジョンの地形データを格納する配列。 多くの場合、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));
地形配列の値を2値化する機能を提供するヘッダー。
ここでは指定する地形配列変数型をSTL_
地形配列内部の整数型をInt_
と定義する。
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を代入する。
void dungeonBinarization(STL_& stl_);
void dungeonBinarization_RangeBasedFor(STL_& stl_);
配列内の値がtrueの場合は1を代入し、それ以外の場合は0を代入する。 後者は範囲ベースfor版。
void dungeonBinarizationBool(STL_& stl_, STL2_& stl2_);
stl_配列内の値がtrueの場合は、stl2_配列に1を代入し、それ以外の場合は0を代入する。
地形配列の値にノイズを発生させる機能を提供するヘッダー。
ここでは指定する地形配列変数型をSTL_
地形配列内部の整数型をInt_
ノイズ発生確率をdouble
のrbool_
ノイズ発生の値置換をInt_
のtrue_tile_
とfalse_tile_
と定義する。
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版。
void noiseShoreBool(STL_& stl_, const double rbool_);
void rnoiseShoreBool(STL_& stl_, const double rbool_);
"ノイズ発生確率がtrue
"かつ"隣接するマスの値が異なる(岸)"の時、
配列内の値がtrue
の場合はfalse
を代入し、false
の場合はtrue
を代入する。
noiseShoreBool
は上方向からの探査、
rnoiseShoreBool
は下方向からの探査である。
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_);
noiseShoreBool
とrnoiseShoreBool
の両方の操作を行う。
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);
Copyright (c) 2018-2021 As Project.
Distributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)