Skip to content

[ja] Reference_cpp14

Kasuga-ccho edited this page Dec 21, 2018 · 8 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_ ใƒŽใ‚คใ‚บ็™บ็”Ÿ็ขบ็Ž‡ใ‚’doubleใฎrbool_ ใƒŽใ‚คใ‚บ็™บ็”Ÿใฎๅ€ค็ฝฎๆ›ใ‚’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_);

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);

ๆบ–ๅ‚™ไธญ

Clone this wiki locally