명칭의 자동 생성법🏠

🏠 만든 마을에 이름을 붙인다 🏠





이번에는 자동 생성한 마을이나 성에 이름을 붙여 갑니다.

🌏 자동 생성 알고리즘 🌏



이번에 생성하는 RPG 필드 맵의 자동 생성 알고리즘은 "셀 오토마톤법" 를 사용합니다.
(>> 셀 오토마톤법에 대해 해설한 기사는 이쪽)

🏯 초기 국가 생성 🏯



최초로 설치하는 초기 국가의 생성은 "이벤트 생성" 를 사용합니다.
(>> 이벤트 생성에 대해 설명한 기사는 여기)

🎵 카타카나의 50음(+탁음·반탁음)을 준비🎵


constexpr std::array<std::string_view, 69> aa{ {"ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ"} };

ヲ 얀 등 일부 문자는 생략하고 있습니다.

💻난수를 준비💻


std::mt19937 mt;
std::random_device rd;
mt.seed(rd());
std::uniform_int_distribution<> uid(0, static_cast<int>(aa.size()) - 1);
std::uniform_int_distribution<> uid2(3, 6);
uid 는 문자 데이터 배열의 크기, uid2 는 마을 이름의 최소 및 최대 문자 수를 결정합니다.
std::string str{};
for (int i{}, maxx{ uid2(mt) }; i < maxx; ++i) str += aa[uid(mt)];
str += "の町";

무작위로 꺼낸 카타카나에서 마을의 이름을 생성합니다.

생성된 마을의 이름
キチノの町
ウピゲの町
ベポカの町
メテチの町

이름이 생성되었습니다!

🌏완성(튜토리얼)🌏





무사히 이름을 붙일 수 있었습니다!

🔥응용편🔥



로마자
constexpr std::array<std::string_view, 69> aae{ {{"a"},{"i"},{"u"},{"e"},{"o"},{"ka"},{"ki"},{"k"},{"ke"},{"ko"},{"sa"},{"shi"},{"s"},{"se"},{"so"},{"ta"},{"chi"},{"tu"},{"te"},{"to"},{"na"},{"ni"},{"nu"},{"ne"},{"no"},{"ha"},{"hi"},{"f"},{"he"},{"ho"},{"ma"},{"mi"},{"m"},{"me"},{"mo"},{"ya"},{"yu"},{"yo"},{"la"},{"li"},{"l"},{"le"},{"lo"},{"wa"},{"ga"},{"gi"},{"g"},{"ge"},{"go"},{"za"},{"ji"},{"z"},{"ze"},{"zo"},{"da"},{"di"},{"j"},{"de"},{"d"},{"ba"},{"bi"},{"b"},{"be"},{"bo"},{"pa"},{"pi"},{"p"},{"pe"},{"po"}} };

생성된 마을의 이름
スパジの町 Spaji Town
イマリの町 Imali Town
ゼケジの町 Zekeji Town
ミワフの町 Miwaf Town

이번에는 마을의 이름을 로마자와 함께 생성해 보겠습니다.



이렇게 로마자도 부속시킬 수 있었습니다.

🌳 타일로 내보내기🌳





RPG 맵 칩 타일로 내보내면 더 RPG 같아지네요.

구현 라이브러리(소스 코드)



이번 해설한 자동 생성은 "던전 템플릿 라이브러리" 를 사용해 구현되고 있습니다.
GitHub에 모든 소스 코드가 있습니다. 도움이되면 다행입니다.
꼭 활용해보세요!



소스 코드 라이센스



These codes are licensed under CC0.
이 기사의 소스 코드는 CC0 라이센스입니다. 꼭 자유롭게 변경하여 놀아보세요. "좋아요"를 붙여 주시면 매우 격려가됩니다. 끝까지 읽어 주셔서 감사합니다!

좋은 웹페이지 즐겨찾기