명칭의 자동 생성법🏠
14347 단어 C++게임 제작알고리즘게임DungeonGeneration
🏠 만든 마을에 이름을 붙인다 🏠
이번에는 자동 생성한 마을이나 성에 이름을 붙여 갑니다.
🌏 자동 생성 알고리즘 🌏
이번에 생성하는 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 라이센스입니다.
꼭 자유롭게 변경하여 놀아보세요.
"좋아요"를 붙여 주시면 매우 격려가됩니다.
끝까지 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(명칭의 자동 생성법🏠), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gis/items/604a0eb9ed8dfbab98bc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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);
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 라이센스입니다.
꼭 자유롭게 변경하여 놀아보세요.
"좋아요"를 붙여 주시면 매우 격려가됩니다.
끝까지 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(명칭의 자동 생성법🏠), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gis/items/604a0eb9ed8dfbab98bc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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 라이센스입니다.
꼭 자유롭게 변경하여 놀아보세요.
"좋아요"를 붙여 주시면 매우 격려가됩니다.
끝까지 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(명칭의 자동 생성법🏠), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gis/items/604a0eb9ed8dfbab98bc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
These codes are licensed under CC0.
이 기사의 소스 코드는 CC0 라이센스입니다. 꼭 자유롭게 변경하여 놀아보세요. "좋아요"를 붙여 주시면 매우 격려가됩니다. 끝까지 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(명칭의 자동 생성법🏠), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gis/items/604a0eb9ed8dfbab98bc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)