{"id":11623,"date":"2023-12-20T21:47:53","date_gmt":"2023-12-20T12:47:53","guid":{"rendered":"https:\/\/www.webcyou.com\/?p=11623"},"modified":"2023-12-20T21:47:55","modified_gmt":"2023-12-20T12:47:55","slug":"5%e5%88%86%e3%81%a7%e8%a6%9a%e3%81%88%e3%82%8b-flutter-flame%e3%81%a7%e4%bd%9c%e3%82%8b-wave-function-collapse-%e6%b3%a2%e5%8b%95%e9%96%a2%e6%95%b0%e5%b4%a9%e5%a3%8a%e3%82%a2%e3%83%ab%e3%82%b4","status":"publish","type":"post","link":"https:\/\/www.webcyou.com\/?p=11623","title":{"rendered":"5\u5206\u3067\u899a\u3048\u308b Flutter Flame\u3067\u4f5c\u308b Wave Function Collapse &#8211; \u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0"},"content":{"rendered":"\n\n\n\n\n<p>\u3069\u3082\u3067\u3059\u3002<\/p>\n<p>\u306a\u3001\u4f55\u30f6\u6708\u3076\u308a\u304b\u3002\u3002<\/p>\n<p>\u3044\u3064\u306e\u9593\u306b\u304b\u306b\u6642\u9593\u3082\u904e\u304e\u3001\u6c17\u304c\u3064\u3051\u3070\u5e74\u672b\u3002\u672c\u5f53\u306b\u6642\u9593\u304c\u7d4c\u3064\u306e\u304c\u65e9\u3044\u3067\u3059\u3088\u306d\u3002\u3002<\/p>\n<p>\u632f\u308a\u8fd4\u308c\u3070\u3001\u524d\u534a\u306fDart\u3001Flutter\u3001Flame\u3001\u5f8c\u534a\u306f\u696d\u52d9\u3067\u3082\u304c\u3063\u3064\u308aRust\u3068\u3002<\/p>\n<p>\u8272\u3005\u3068\u5909\u5316\u3082\u3042\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u4eca\u56de\u306f\u3001\u30a2\u30c9\u30d9\u30f3\u30c8\u30ab\u30ec\u30f3\u30c0\u30fc\u3082\u3042\u308b\u3053\u3068\u304b\u3089\u3001\u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306b\u3064\u3044\u3066\u3064\u3089\u3064\u3089\u3068\u66f8\u304b\u305b\u3066\u9802\u3053\u3046\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<h4>\u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0<!-- notionvc: 1f0d8dc4-a1c5-45ae-b811-c1328e84fe49 --><\/h4>\n<p>\u540d\u524d\u304b\u3089\u51c4\u305d\u3046\u306a\u3001Wave Function Collapse &#8211; \u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3063\u3066\u306a\u3093\u306a\u306e\u304b\u3067\u3059\u304c\u3001<\/p>\n<p>Maxim Gumin\u6c0f\u304c 2016\u5e74\u306b \u958b\u767a\u3001\u516c\u958b\u3057\u305f \u30e9\u30f3\u30c0\u30e0\u751f\u6210\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u306a\u3063\u3066\u304a\u308a\u3001\u6614\u304b\u3089\u5b58\u5728\u3059\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u6bd4\u8f03\u3059\u308b\u3068\u3001\u6bd4\u8f03\u7684\u65b0\u3057\u3044\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\uff08\u3068\u306f\u3044\u30487\u5e74\u7d4c\u3063\u3066\u304a\u308a\u307e\u3059\u304c\u3002\uff09<\/p>\n<p>\u3067\u306f\u3001\u305d\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306f\u4e3b\u306b\u3069\u3046\u3044\u3063\u305f\u98a8\u306b\u6d3b\u7528\u3059\u308b\u306e\u304b\u3067\u3059\u304c\u3001\u307e\u305a\u306fMaxim Gumin\u6c0f\u306eGithub \u30ec\u30dd\u30b8\u30c8\u30ea\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/mxgmn\/WaveFunctionCollapse\">mxgmn\/WaveFunctionCollapse<\/a><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-11625\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_1-1024x373.png\" alt=\"\" width=\"1024\" height=\"373\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_1-1024x373.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_1-300x109.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_1-768x280.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_1-1536x559.png 1536w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_1.png 1714w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>\u898b\u305f\u611f\u3058\u3001\u300c<strong>\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u306e\u30a4\u30e1\u30fc\u30b8<\/strong>\u300d\u3092\u5165\u529b\u30c7\u30fc\u30bf\u3068\u3057\u3066\u300c<strong>\u81a8\u5927\u306b\u3042\u308b\u30d1\u30bf\u30fc\u30f3\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u629e\u3057\u3066\u751f\u6210\u3055\u308c\u305f\u30b0\u30e9\u30d5\u30a3\u30c3\u30af<\/strong>\u300d\u304c\u51fa\u529b\u3055\u308c\u3066\u3044\u308b\u306e\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3068\u805e\u304f\u3068\u3001\u30c7\u30a3\u30fc\u30d7\u30e9\u30fc\u30cb\u30f3\u30b0\u306a\u3069\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u30a4\u30e1\u30fc\u30b8\u3055\u308c\u308b\u3068\u3053\u308d\u3082\u3042\u308a\u307e\u3059\u304c\u3001\u305d\u3046\u3044\u3063\u305f\u6a5f\u68b0\u5b66\u7fd2\u3068\u306f\u7570\u306a\u308a\u3001\u30b7\u30f3\u30d7\u30eb\u4e14\u3064\u5bb9\u6613\u306b\u6d3b\u7528\u3067\u304d\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u306a\u3063\u3066\u304a\u308a\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p><!-- notionvc: 1cabcfe8-24dd-4bd2-b628-247bb2e4ffec --><\/p>\n<p>\u5b9f\u969b\u306b\u3069\u306e\u69d8\u306a\u3068\u3053\u308d\u3067\u5229\u7528\u3055\u308c\u308b\u304b\u3067\u3059\u304c\u3001\u300c<strong>\u30e9\u30f3\u30c0\u30e0\u306b\u751f\u6210<\/strong>\u300d\u3068\u306a\u308b\u3068\u3001\u30b2\u30fc\u30e0\u5185\u3067\u5229\u7528\u3055\u308c\u308b\u30b7\u30fc\u30f3\u304c\u591a\u304f\u3001\u30ed\u30fc\u30b0\u30e9\u30a4\u30af\u30b2\u30fc\u30e0\u306e\u30c0\u30f3\u30b8\u30e7\u30f3\u3084\u30dc\u30af\u30bb\u30eb\u30b2\u30fc\u30e0\u306e\u30ef\u30fc\u30eb\u30c9\u30de\u30c3\u30d7\u306a\u3069\u591a\u7a2e\u591a\u69d8\u3067\u3001\u751f\u6210\u65b9\u6cd5\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u81ea\u4f53\u3082\u30b2\u30fc\u30e0\u306b\u3088\u3063\u3066\u3082\u7570\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u7c21\u6613\u3067\u6709\u540d\u306a\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u3057\u3066\u68d2\u5012\u3057\u6cd5\u306a\u3069\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306f\u305d\u308c\u3089\u540c\u69d8\u306b\u6d3b\u7528\u3067\u304d\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u306a\u3063\u3066\u304a\u308a\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p><!-- notionvc: 65d66a28-9752-43ad-96d0-3e8f4ff826ff --><\/p>\n<p>\u30b2\u30fc\u30e0\u306b\u3088\u3063\u3066\u3001\u30ec\u30d9\u30eb\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u30fc\u304c\u5b58\u5728\u3057\u3001\u9b45\u529b\u306e\u3042\u308b\u30de\u30c3\u30d7\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u30ce\u30a4\u30ba\u95a2\u6570\u306a\u3069\u3092\u7528\u3044\u3066\u751f\u6210\u3059\u308b\u306e\u3067\u3059\u304c\u3001\u30c0\u30f3\u30b8\u30e7\u30f3\u306e\u90e8\u5c4b\u306b\u3088\u3063\u3066\u306f\u3001\u5927\u304d\u306a\u90e8\u5c4b\u306e\u4e2d\u5fc3\u306b\u7279\u5b9a\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u5b58\u5728\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3068\u304b\u3001\u6c34\u304c\u6eb6\u5ca9\u3084\u305d\u306e\u4ed6\u306e\u3082\u306e\u3068\u96a3\u63a5\u3057\u3066\u306f\u3044\u3051\u306a\u3044\u3068\u304b\u3001\u30de\u30c3\u30d7\u751f\u6210\u306b\u304a\u3051\u308b\u5236\u7d04\u3092\u4e0e\u3048\u3088\u308a\u7d30\u304b\u304f\u5236\u5fa1\u3057\u3001\u7279\u5b9a\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u914d\u7f6e\u3055\u308c\u308b\u5834\u6240\u306b\u5236\u9650\u3092\u52a0\u3048\u3066\u30ec\u30d9\u30eb\u3092\u751f\u6210\u3057\u305f\u3044\u6642\u306b<strong>Wave Function Collapse<\/strong> \uff08\u4ee5\u4e0b WFC\u3068\u3059\u308b\uff09\u306f\u6709\u7528\u3068\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\u30ec\u30dd\u30b8\u30c8\u30ea\u306e\u30b5\u30f3\u30d7\u30eb\u3067\u3082\u3042\u308b\u3088\u3046\u306b\u3001RPG\u3067\u3042\u308b\u30de\u30c3\u30d7\u3092\u63cf\u304f\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p><!-- notionvc: ddab3287-e40b-4c4e-be79-6919a98cb27f --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-11626\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_2-1024x531.png\" alt=\"\" width=\"1024\" height=\"531\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_2-1024x531.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_2-300x156.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_2-768x398.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_2-1536x797.png 1536w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_2.png 1700w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><a class=\"notion-link-token notion-focusable-token notion-enable-hover\" tabindex=\"0\" href=\"https:\/\/observablehq.com\/@makio135\/zelda-wfc\" rel=\"noopener noreferrer\" data-token-index=\"0\"><span class=\"link-annotation-unknown-block-id-369897803\">JS\u3067\u6d3b\u7528\u3057\u305f\u30b5\u30f3\u30d7\u30eb<\/span><\/a><!-- notionvc: a34627c6-4bf7-49c8-8a6b-7ed9f706ac65 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-11627\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_3-1024x528.png\" alt=\"\" width=\"1024\" height=\"528\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_3-1024x528.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_3-300x155.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_3-768x396.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_3-1536x791.png 1536w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_3.png 1968w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u81ea\u4f53\u3001C#\u3067\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3082\u3042\u3063\u3066\u3001Unity\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u4f5c\u6210\u3055\u308c\u305f\u308a\u3001Unity\u3067\u4f5c\u6210\u3055\u308c\u305f\u30b2\u30fc\u30e0\u3067\u6d3b\u7528\u3055\u308c\u3066\u3044\u308b\u306e\u3092\u591a\u304f\u898b\u304b\u3051\u307e\u3059\u304c\u3001Unity\u3060\u3051\u306b\u9650\u3089\u305a\u3001Unreal Engine\u3001PICO-8\u3068\u3044\u3063\u305f\u69d8\u3005\u306a\u30b2\u30fc\u30e0\u30a8\u30f3\u30b8\u30f3\u306b\u3082\u7528\u3044\u3089\u308c\u30012D\u30b2\u30fc\u30e0\u306e\u307f\u306a\u3089\u305a3D\u30b2\u30fc\u30e0\u306b\u3082\u5fdc\u7528\u3067\u304d\u3001\u5b9f\u969b\u306b\u30ec\u30dd\u30b8\u30c8\u30ea\u306e\u30b5\u30f3\u30d7\u30eb\u753b\u50cf\u306b\u3082\u63b2\u8f09\u3055\u308c\u3066\u3044\u308b\u8ff7\u8def\u3084\u3001Steam\u306a\u3069\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u3066\u3044\u308b\u30b2\u30fc\u30e0\u306eTownscaper\u306a\u3069\u306b\u3082\u9069\u5fdc\u3055\u308c\u3066\u304a\u308a\u3001\u8a00\u8a9e\u3001\u30b2\u30fc\u30e0\u30a8\u30f3\u30b8\u30f3\u3001\u30b8\u30e3\u30f3\u30eb\u3092\u554f\u308f\u306a\u3044\u6545\u306b\u6d3b\u7528\u5b9f\u7e3e\u3082\u591a\u304f\u7bc4\u56f2\u3082\u5e45\u5e83\u3044\u3067\u3059\u3002<!-- notionvc: 730420fd-2954-4d5e-bc8d-cc6a9c208f57 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11628\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_4-1024x848.png\" alt=\"\" width=\"603\" height=\"500\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_4-1024x848.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_4-300x249.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_4-768x636.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_4-1536x1272.png 1536w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_4.png 1702w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/p>\n<h4><span class=\"notion-enable-hover\" data-token-index=\"0\">Tile Model\u3068Overlapping Model<\/span><!-- notionvc: 50d175d8-8fa0-41d2-9245-c3619a93902f --><\/h4>\n<p>\u3068\u3044\u3063\u305f\u3068\u3053\u308d\u3067\u3001WFC\u306e\u6982\u8981\u306f\u5206\u304b\u3063\u305f\u3068\u3053\u308d\u3067\u4e2d\u8eab\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>WFC\u306b\u306f\u5927\u304d\u304f2\u3064\u306e\u751f\u6210\u30e2\u30c7\u30eb\u304c\u3042\u308a\u307e\u3059\u3002<strong>Tile Model<\/strong>\u3068<strong>Overlapping Model<\/strong>\u3067\u3059\u3002<\/p>\n<p><!-- notionvc: 05a95798-025a-462c-b0c1-97e07ff395ea --><\/p>\n<p>\u00a0<\/p>\n<p><!-- notionvc: 83745bb1-72d3-4051-bd00-6c93120e7567 --><\/p>\n<h5><span class=\"notion-enable-hover\" data-token-index=\"0\">Overlapping Model<\/span><!-- notionvc: c030201e-cae1-4e2c-af6c-114293b6e191 --><\/h5>\n<p>\u5165\u529b\u753b\u50cf\u304b\u3089\u53d6\u5f97\u3057\u305f\u5c0f\u3055\u306a\u90e8\u5206\u306e\u96c6\u5408\u3092\u4f7f\u7528\u3057\u3066\u3001\u51fa\u529b\u753b\u50cf\u3092\u751f\u6210\u3002\u30bb\u30b0\u30e1\u30f3\u30c8\u304c\u3069\u306e\u3088\u3046\u306b\u91cd\u306a\u308a\u5408\u3046\u304b\u306b\u91cd\u304d\u3092\u7f6e\u3044\u3066\u3044\u308b\u3002\u57fa\u672c\u7684\u306b\u3001\u3053\u306e\u30e2\u30c7\u30eb\u306f\u5165\u529b\u753b\u50cf\u5185\u3067\u898b\u3064\u304b\u308b\u3059\u3079\u3066\u306e\u53ef\u80fd\u306a <span class=\"notion-enable-hover\" data-token-index=\"1\">N<\/span>\u00d7<span class=\"notion-enable-hover\" data-token-index=\"3\">N<\/span>\u30d4\u30af\u30bb\u30eb\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u5206\u6790\u3057\u3001\u3053\u308c\u3089\u306e\u30d1\u30bf\u30fc\u30f3\u306e\u91cd\u306a\u308a\u3092\u8003\u616e\u3057\u3066\u65b0\u3057\u3044\u5927\u304d\u306a\u753b\u50cf\u3092\u751f\u6210\u3002<!-- notionvc: a7e59a0b-5c96-4d3b-97c3-026798896249 --><\/p>\n<p>\u7279\u5fb4\uff1a<\/p>\n<ul>\n<li><strong>\u8a73\u7d30\u306a\u51fa\u529b<\/strong>: \u5143\u306e\u753b\u50cf\u306e\u5fae\u7d30\u306a\u7279\u5fb4\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u3001\u51fa\u529b\u306b\u53cd\u6620\u3055\u305b\u308b\u3002<\/li>\n<li><strong>\u975e\u5468\u671f\u7684\u306a\u30c6\u30af\u30b9\u30c1\u30e3\u306e\u751f\u6210<\/strong>: \u5165\u529b\u753b\u50cf\u304b\u3089\u7e70\u308a\u8fd4\u3057\u306e\u306a\u3044\u30d1\u30bf\u30fc\u30f3\u3092\u751f\u6210\u306b\u9069\u3057\u3066\u3044\u308b\u3002<\/li>\n<li><strong>\u8907\u96d1\u306a\u69cb\u6210<\/strong>: \u5165\u529b\u753b\u50cf\u306e\u69d8\u3005\u306a\u90e8\u5206\u304b\u3089\u306e\u60c5\u5831\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u8907\u96d1\u3067\u8a73\u7d30\u306a\u51fa\u529b\u3092\u751f\u6210\u53ef\u3002<\/li>\n<\/ul>\n<p><!-- notionvc: f694d0db-de84-4056-8fb4-858cbcb4d670 --><\/p>\n<h5><strong>Tile Model<\/strong><\/h5>\n<p>\u4e88\u3081\u5b9a\u7fa9\u3055\u308c\u305f\u30bb\u30c3\u30c8\u306e\u30bf\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u3066\u753b\u50cf\u3092\u751f\u6210\u3002\u3053\u308c\u3089\u306e\u30bf\u30a4\u30eb\u306f\u3001\u7279\u5b9a\u306e\u30eb\u30fc\u30eb\u306b\u57fa\u3065\u3044\u3066\u96a3\u63a5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u9023\u7d9a\u3057\u305f\u753b\u50cf\u304c\u5f62\u6210\u3055\u308c\u308b\u3002\u30bf\u30a4\u30eb\u306f\u901a\u5e38\u3001\u8fba\u3084\u89d2\u304c\u4ed6\u306e\u30bf\u30a4\u30eb\u3068\u4e00\u81f4\u3059\u308b\u3088\u3046\u306b\u8a2d\u8a08\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u308c\u3089\u304c\u5408\u308f\u3055\u3063\u3066\u4e00\u8cab\u6027\u306e\u3042\u308b\u5168\u4f53\u50cf\u3092\u4f5c\u6210\u3002<\/p>\n<p>\u7279\u5fb4\uff1a<\/p>\n<ul>\n<li><strong>\u898f\u5247\u6027\u3068\u4e00\u8cab\u6027<\/strong>: \u30bf\u30a4\u30eb\u304c\u6301\u3064\u660e\u78ba\u306a\u898f\u5247\u3068\u4e00\u8cab\u6027\u306b\u3088\u3063\u3066\u3001\u5747\u4e00\u306a\u30d1\u30bf\u30fc\u30f3\u3084\u69cb\u9020\u3092\u751f\u6210\u3059\u308b\u306e\u306b\u9069\u3057\u3066\u3044\u308b\u3002<\/li>\n<li><strong>\u30b2\u30fc\u30e0\u30c7\u30b6\u30a4\u30f3\u3067\u306e\u5fdc\u7528<\/strong>: \u30bf\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u30b2\u30fc\u30e0\u30c7\u30b6\u30a4\u30f3\u306b\u7279\u306b\u9069\u3057\u3066\u304a\u308a\u3001\u30de\u30c3\u30d7\u3084\u30ec\u30d9\u30eb\u306e\u81ea\u52d5\u751f\u6210\u306b\u7528\u3044\u3089\u308c\u308b\u3002<\/li>\n<li><strong>\u30b7\u30f3\u30d7\u30eb\u306a\u8a2d\u8a08<\/strong>: \u30bf\u30a4\u30eb\u30e2\u30c7\u30eb\u306f\u3001Overlapping\u30e2\u30c7\u30eb\u306b\u6bd4\u3079\u3066\u5b9f\u88c5\u304c\u6bd4\u8f03\u7684\u30b7\u30f3\u30d7\u30eb\u3067\u3001\u7279\u5b9a\u306e\u7a2e\u985e\u306e\u30bf\u30a4\u30eb\u306b\u57fa\u3065\u3044\u3066\u30d1\u30bf\u30fc\u30f3\u3092\u4f5c\u6210\u3002<\/li>\n<\/ul>\n<p><!-- notionvc: a422ad31-c762-4533-9521-cd01e24a2e6d --><\/p>\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u4eca\u56de\u306fOverlapping\u30e2\u30c7\u30eb\u3088\u308a\u30b7\u30f3\u30d7\u30eb\u306aTile Model\u306b\u6ce8\u76ee\u3057\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<!-- notionvc: 0e9d8056-dcf7-4842-85de-f40ea3a63995 --><\/p>\n<p>\u00a0<\/p>\n<h4>Entropy \uff08\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\uff09<!-- notionvc: 9a51e208-dd96-4c1d-8119-47c375d0bf17 --><\/h4>\n<p>\u3067\u306f\u3001\u4e2d\u8eab\u3092\u898b\u3066\u3044\u304d\u305f\u3044\u306e\u3067\u3059\u304c\u3001\u305d\u306e\u524d\u306b\u3001\u305d\u3082\u305d\u3082\u3001Wave Function Collapse &#8211; \u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3063\u3066\u3044\u3046\u540d\u524d\u306e\u7531\u6765\u306f\uff1f\u3068\u601d\u3046\u65b9\u3082\u5c11\u306a\u304f\u306a\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u3053\u3061\u3089\u91cf\u5b50\u529b\u5b66\u304c\u5143\u306b\u306a\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3001\u91cf\u5b50\u529b\u5b66\u3067\u306e\u540d\u79f0\u306f\u300c\u6ce2\u52d5\u95a2\u6570\u306e\u53ce\u7e2e\u307e\u305f\u306f\u6ce2\u52d5\u95a2\u6570\u306e\u5d29\u58ca\u300d\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u7528\u8a9e\u81ea\u4f53\u306f\u91cf\u5b50\u529b\u5b66\u306b\u7531\u6765\u3057\u3066\u3044\u308b\u307f\u305f\u3044\u3067\u3059\u304c\u3001\u305d\u306e\u6ce2\u52d5\u95a2\u6570\u306e\u5d29\u58ca\u3068\u306f\u3069\u3046\u3044\u3046\u4e8b\u304b\u8003\u3048\u3066\u3044\u304f\u306e\u3067\u3059\u304c\u3001\u3053\u3053\u3067\u51fa\u3066\u304f\u308b\u306e\u5927\u4e8b\u306a\u8981\u7d20\u304c\u300c<strong>Entropy \uff08\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\uff09<\/strong>\u300d\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>wikipedia\u3092\u898b\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<blockquote>\n<p><!-- notionvc: 3daf9712-e66e-48e5-99c7-8b9a91be6f48 --><\/p>\n<p>\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\uff08\u82f1: entropy\uff09\u306f\u3001\u71b1\u529b\u5b66\u304a\u3088\u3073\u7d71\u8a08\u529b\u5b66\u306b\u304a\u3044\u3066\u5b9a\u7fa9\u3055\u308c\u308b\u793a\u91cf\u6027\u306e\u72b6\u614b\u91cf\u3067\u3042\u308b\u3002 \u71b1\u529b\u5b66\u306b\u304a\u3044\u3066\u65ad\u71b1\u6761\u4ef6\u4e0b\u3067\u306e\u4e0d\u53ef\u9006\u6027\u3092\u8868\u3059\u6307\u6a19\u3068\u3057\u3066\u5c0e\u5165\u3055\u308c\u3001\u7d71\u8a08\u529b\u5b66\u306b\u304a\u3044\u3066\u7cfb\u306e\u5fae\u8996\u7684\u306a\u300c\u4e71\u96d1\u3055\u300d\u3092\u8868\u3059\u7269\u7406\u91cf\u3068\u3044\u3046\u610f\u5473\u4ed8\u3051\u304c\u306a\u3055\u308c\u305f\u3002 \u7d71\u8a08\u529b\u5b66\u3067\u306e\u7d50\u679c\u304b\u3089\u3001\u7cfb\u304b\u3089\u5f97\u3089\u308c\u308b\u60c5\u5831\u306b\u95a2\u4fc2\u304c\u3042\u308b\u3053\u3068\u304c\u6307\u6458\u3055\u308c\u3001\u60c5\u5831\u7406\u8ad6\u306b\u3082\u5fdc\u7528\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002 \u7269\u7406\u5b66\u8005\u306e\u30a8\u30c9\u30a6\u30a3\u30f3\u30fb\u30b8\u30a7\u30a4\u30f3\u30ba\uff08\u82f1\u8a9e\u7248\uff09\u306e\u3088\u3046\u306b\u3080\u3057\u308d\u7269\u7406\u5b66\u306b\u304a\u3051\u308b\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u3092\u60c5\u5831\u7406\u8ad6\u306e\u4e00\u5fdc\u7528\u3068\u307f\u306a\u3059\u3079\u304d\u3060\u3068\u4e3b\u5f35\u3059\u308b\u8005\u3082\u3044\u308b\u3002<!-- notionvc: 99e68852-898f-4ebc-ac41-fbb7b5d52115 --><\/p>\n<\/blockquote>\n<p>\u306f\u3044\u3002\u3088\u304f\u308f\u304b\u308a\u307e\u305b\u3093\u306d\u3002w<!-- notionvc: fb7abada-8d45-42f6-bafa-cb1868ed2b4a --><\/p>\n<p>\u4eca\u56de\u306eWFC\u3067\u306f\u3001\u5f8c\u534a\u306e\u60c5\u5831\u7406\u8ad6\u306e\u65b9\u306e\u5fdc\u7528\u306b\u8a72\u5f53\u3057\u3001\u3042\u308b\u4e8b\u8c61\u304c\u8d77\u304d\u305f\u969b\u3001\u305d\u308c\u304c\u3069\u308c\u307b\u3069\u8d77\u3053\u308a\u306b\u304f\u3044\u304b\u3092\u8868\u3059\u5c3a\u5ea6\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u4f8b\u3048\u3070\u6563\u6b69\u3057\u3066\u3044\u3066\u3001\u3042\u308a\u3075\u308c\u305f\u51fa\u6765\u4e8b\u3068\u3057\u3066\u300c\u98a8\u306e\u97f3\u300d\u304c\u8d77\u304d\u305f\u4e8b\u3092\u77e5\u3063\u3066\u3082\u305d\u308c\u306f\u5927\u3057\u305f\u300c\u60c5\u5831\u300d\u306b\u306f\u306a\u3089\u306a\u3044\u304c\u3001\u300c\u66f2\u306e\u6f14\u594f\u300d\u304c\u805e\u3053\u3048\u3066\u304f\u308c\u3070\u73cd\u3057\u3044\u51fa\u6765\u4e8b\u3068\u3057\u3066\u3088\u308a\u591a\u304f\u306e\u300c\u60c5\u5831\u300d\u3092\u542b\u3093\u3067\u3044\u308b\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002<\/p>\n<p>\u3064\u307e\u308a\u3001\u60c5\u5831\u91cf\u306f\u305d\u306e\u51fa\u6765\u4e8b\u304c\u672c\u8cea\u7684\u306b\u3069\u306e\u7a0b\u5ea6\u306e\u60c5\u5831\u3092\u6301\u3064\u304b\u306e\u5c3a\u5ea6\u3068\u3057\u3066\u307f\u306a\u3055\u308c\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: e6405023-ed81-4f52-9cfe-bbcffbb8beb9 --><\/p>\n<p>\u305d\u306e\u300c<strong><span class=\"notion-enable-hover\" data-token-index=\"1\">Entropy \uff08\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\uff09<\/span><\/strong>\u300d\u3068\u60c5\u5831\u7406\u8ad6\u3092\u7528\u3044\u3066\u3001\u6570\u5e74\u524d\u306b\u6d41\u884c\u3063\u305f\u30b2\u30fc\u30e0\u300c<a class=\"notion-link-token notion-focusable-token notion-enable-hover\" tabindex=\"0\" href=\"https:\/\/www.nytimes.com\/games\/wordle\/index.html\" rel=\"noopener noreferrer\" data-token-index=\"3\"><span class=\"link-annotation-unknown-block-id--2080769314\">Wordle<\/span><\/a>\u300d\u3092\u3001\u3088\u308a\u5c11\u306a\u3044\u8a66\u884c\u56de\u6570\u3067\u5f53\u3066\u308b\u65b9\u6cd5\u306e\u89e3\u8aac\u52d5\u753b\u304c\u9762\u767d\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u3053\u3061\u3089\u307e\u3067\u898b\u3066\u3044\u304f\u30685\u5206\u3092\u904e\u304e\u3066\u3057\u307e\u3059\u306e\u3067\u8208\u5473\u3042\u308b\u65b9\u3067\u89b3\u3066\u3044\u305f\u3060\u3051\u308c\u3070\u3068\u601d\u3044\u307e\u3059\u3002<!-- notionvc: b29fe344-257f-4681-ac4f-e76d5099dc7f --><\/p>\n<p><a class=\"notion-link-token notion-focusable-token notion-enable-hover\" tabindex=\"0\" href=\"https:\/\/www.youtube.com\/watch?v=v68zYyaEmEA\" rel=\"noopener noreferrer\" data-token-index=\"0\"><span class=\"link-annotation-unknown-block-id-1180158701\">Solving Wordle using information theory<\/span><\/a><!-- notionvc: a9a500c2-587a-49d5-998a-bc24cbf865db --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-11629\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_5-1024x460.png\" alt=\"\" width=\"1024\" height=\"460\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_5-1024x460.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_5-300x135.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_5-768x345.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_5-1536x689.png 1536w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_5-2048x919.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>\uff081\u52064\u79d2\u7d4c\u904e\uff09<!-- notionvc: d20c9be5-0cc1-439a-90a3-03e43dfdc2af --><\/p>\n<h4>\u6570\u72ec \uff08sudoku\uff09<!-- notionvc: e8508991-fcb4-4137-a3b3-b5b7b6b91aa9 --><\/h4>\n<p>\u4eca\u56de\u306eWFC\u3067\u7528\u3044\u3089\u308c\u308b\u6982\u5ff5\u3068\u3057\u3066\u3001\u6570\u72ec \uff08sudoku\uff09\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u6570\u72ec\uff08\u30ca\u30f3\u30d0\u30fc\u30d7\u30ec\u30a4\u30b9\u3001\u901a\u79f0\u30ca\u30f3\u30d7\u30ec\uff09\u306f\u3001\u59cb\u3081\u308b\u3068\u3084\u3081\u3089\u308c\u306a\u3044\u3067\u3059\u3088\u306d\u3002\u30b3\u30f3\u30d3\u30cb\u306e\u96d1\u8a8c\u30b3\u30fc\u30ca\u30fc\u3068\u304b\u3067\u3082\u8ca9\u58f2\u3055\u308c\u3066\u3044\u3066\u3001\u6614\u306f\u3088\u304f\u671d\u306b\u306a\u308b\u307e\u3067\u3084\u3063\u3066\u3044\u305f\u308a\u3001\u308f\u3056\u308f\u3056\u30b2\u30fc\u30e0\u30bd\u30d5\u30c8\u3068\u3057\u3066\u30ea\u30ea\u30fc\u30b9\u3057\u3066\u3044\u308b\u6570\u72ec\u3092\u8cfc\u5165\u3057\u305f\u308a\u3068\u30cf\u30de\u3063\u3066\u3044\u305f\u6642\u671f\u3082\u3042\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u3068\u3001\u8a71\u306f\u9038\u308c\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u304c\u3001<strong>Entropy \uff08\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\uff09<\/strong>\u300d\u306b\u95a2\u3057\u3066\u306f\u6570\u72ec \uff08sudoku\uff09\u304c\u7406\u89e3\u3057\u3084\u3059\u3044\u306e\u3067\u305d\u308c\u306b\u7f6e\u304d\u63db\u3048\u3066\u307f\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>\u307e\u305a\u3001\u6570\u72ec \uff08sudoku\uff09\u306e\u30eb\u30fc\u30eb\u3068\u3057\u3066\u30019&#215;9\u306e\u30b0\u30ea\u30c3\u30c9\u306b3&#215;3\u306e\u5c0f\u3055\u306a\u30dc\u30c3\u30af\u30b9\u3068\u547c\u3070\u308c\u308b9\u3064\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u306b\u5206\u5272\u3055\u308c\u3066\u3044\u3066\u3001\u884c\u3001\u5217\u3001\u30dc\u30c3\u30af\u30b9\u306b1\u304b\u30899\u307e\u3067\u306e\u6570\u5b57\u304c\u4e00\u5ea6\u305a\u3064\u73fe\u308c\u308b\u30eb\u30fc\u30eb\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: c3272ac0-0dde-4c6f-95fe-564587ab9480 --><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-11630\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_1-1024x393.png\" alt=\"\" width=\"1024\" height=\"393\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_1-1024x393.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_1-300x115.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_1-768x295.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_1.png 1148w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>\u3082\u3057\u3001\u30bb\u30eb\u3059\u3079\u3066\u7a7a\u767d\u306e\u5834\u5408\u3001\u30bb\u30eb\u306b\u306f1\u301c9\u306e\u6570\u5b57\u304c\u57cb\u3081\u3089\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u6642\u306e\u5e73\u5747\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306f9\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: bac87491-83a7-46a3-9669-ce396066204c --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11631\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_2.png\" alt=\"\" width=\"361\" height=\"362\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_2.png 720w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_2-300x300.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_2-150x150.png 150w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_2-120x120.png 120w\" sizes=\"auto, (max-width: 361px) 100vw, 361px\" \/><\/p>\n<p>\u4ee5\u4e0b\u306e\u30bb\u30eb\u306b5\u304c\u5165\u3063\u305f\u5834\u5408\u3001\u884c\u3001\u5217\u3001\u30dc\u30c3\u30af\u30b9\u306b\u5f71\u97ff\u3057\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304c\u6e1b\u5c11\u3057\u307e\u3059\u3002<!-- notionvc: ed652886-0c67-445a-b3eb-3b5aec2bf538 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11632\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_3.png\" alt=\"\" width=\"356\" height=\"357\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_3.png 720w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_3-300x300.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_3-150x150.png 150w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_3-120x120.png 120w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/p>\n<p>\u540c\u3058\u884c\u3001\u5217\u3001\u307e\u305f\u306f\u30dc\u30c3\u30af\u30b9\u306b\u3042\u308b\u4ed6\u306e\u30bb\u30eb\u306b\u306f5\u304c\u542b\u307e\u308c\u306a\u3044\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u305d\u306e\u60c5\u5831\u3088\u308a\u5f71\u97ff\u3092\u53d7\u3051\u308b\u30bb\u30eb\u306b\u4f1d\u64ad\u3057\u3001\u91cd\u306d\u5408\u308f\u308b\u3053\u3068\u306b\u3088\u308a\u30015\u306e\u6570\u5b57\u3092\u524a\u9664\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5909\u5316\u3057\u305f\u30bb\u30eb\u306f8\u3064\u306e\u6570\u5b57\u306e\u53ef\u80fd\u6027\u3092\u6301\u3063\u305f\u72b6\u614b\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001\u3053\u3053\u306b9\u306e\u6570\u5b57\u304c\u5165\u3063\u305f\u3068\u3059\u308b\u3068\u3001\u5148\u7a0b\u540c\u69d8\u306b\u3001\u884c\u3001\u5217\u3001\u30dc\u30c3\u30af\u30b9\u306b\u5f71\u97ff\u3057\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304c\u6e1b\u5c11\u3057\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 14730b47-3e7c-41ed-9d7b-9a4b2d4a453f --><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11633\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_4.png\" alt=\"\" width=\"356\" height=\"357\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_4.png 720w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_4-300x300.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_4-150x150.png 150w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_4-120x120.png 120w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/p>\n<p>\u3053\u306e\u69d8\u306b\u3001\u6570\u5b57\u304c\u78ba\u5b9a\u3059\u308b\u3068\u3001\u4ed6\u306e\u30bb\u30eb\u306b\u305d\u306e\u72b6\u614b\u304c\u4f1d\u64ad\u3057\u6298\u308a\u305f\u305f\u3081\u3089\u308c\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>5\u30849\u306a\u3069\u3092\u9078\u629e\u3057\u305f\u4f8b\u306e\u69d8\u306b\u305d\u306e\u72b6\u614b\u304c1\u3064\u306e\u9078\u629e\u80a2\u306b\u78ba\u5b9a\u3059\u308b\u3068\u3001\u96a3\u63a5\u3059\u308b\u30bb\u30eb\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304c\u6e1b\u5c11\u3057\u3001\u305d\u3053\u304b\u3089\u63a8\u6e2c\u3092\u958b\u59cb\u3057\u307e\u3059\u3002<\/p>\n<p>\u6570\u72ec\u3092\u89e3\u304f\u307e\u3067\u63a8\u6e2c\u3001\u5d29\u58ca\u3001\u63a8\u6e2c\u3001\u5d29\u58ca\u2026\u304c\u7e70\u308a\u8fd4\u3055\u308c\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u69d8\u306b\u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u5185\u306b\u5b58\u5728\u3059\u308b\u30d7\u30ed\u30bb\u30b9\u3068\u3001\u6570\u72ec\u3092\u89e3\u304f\u30d7\u30ed\u30bb\u30b9\u306f\u540c\u3058\u3067\u3001\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304c\u5c11\u306a\u3044\u30bf\u30a4\u30eb\u3001\u3064\u307e\u308a\u305d\u306e\u4e2d\u306b\u5165\u308b\u53ef\u80fd\u6027\u306e\u3042\u308b\u6570\u5024\u304c\u6700\u3082\u5c11\u306a\u3044\u30bf\u30a4\u30eb\u3092\u63a2\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 37aeafc0-78ea-42ce-b0ee-765de92aa07f --><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11634\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_5.png\" alt=\"\" width=\"357\" height=\"358\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_5.png 720w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_5-300x300.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_5-150x150.png 150w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_5-120x120.png 120w\" sizes=\"auto, (max-width: 357px) 100vw, 357px\" \/><\/p>\n<p>\u3059\u3079\u3066\u306e\u53ef\u80fd\u306a\u72b6\u614b\u304b\u30891\u3064\u306b\u5d29\u58ca\u3055\u305b\u308b\u3053\u3068\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u5358\u4e00\u5909\u6570\u304b\u3089\u5168\u3066\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u3092\u524a\u9664\u3059\u308b\u4e8b\u3092\u6ce2\u52d5\u95a2\u6570\u306e\u5d29\u58ca\u3068\u8a00\u3044\u307e\u3059\u3002<!-- notionvc: 048df3a0-1d22-45c4-af05-64ed6ef0625b --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11635\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_6.png\" alt=\"\" width=\"354\" height=\"354\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_6.png 722w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_6-300x300.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_6-150x150.png 150w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_6-120x120.png 120w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><\/p>\n<p>\uff081\u520637\u79d2\u7d4c\u904e\uff09<!-- notionvc: b3fe02fe-79e9-4194-87fb-2ce432cb8cff --><\/p>\n<p>\u00a0<\/p>\n<h4>\u96a3\u63a5\u6027\u3092\u6301\u3063\u305f\u30bd\u30b1\u30c3\u30c8\u30b7\u30b9\u30c6\u30e0<!-- notionvc: 6a287b55-0673-459f-afee-3a0dfd25926b --><\/h4>\n<p>\u6570\u72ec\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u53c2\u8003\u306bWFC\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u898b\u3048\u304d\u307e\u3057\u305f\u304c\u3001\u3067\u306f\u5b9f\u969b\u306b\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u304c\u3069\u306e\u69d8\u306b\u78ba\u5b9a\u3057\u3066\u3044\u304f\u304b\u3092\u898b\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p><strong>\u7279\u5b9a\u306e\u30bb\u30eb\u304c\u6298\u308a\u305f\u305f\u307e\u308c\u3001\u305d\u306e\u30bb\u30eb\u304c\u78ba\u5b9a\u3057\u305f\u5834\u5408\u96a3\u63a5\u3059\u308b\u30bb\u30eb\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304c\u6e1b\u5c11\u3057\u3066\u3044\u304f<\/strong>\u3002\u3068\u3044\u3046\u3053\u3068\u306f\u3001\u3064\u307e\u308a\u96a3\u63a5\u3057\u3066\u3044\u308b\u30bb\u30eb\u306e\u9078\u629e\u80a2\u304c\u63a5\u7d9a\u53ef\u80fd\u306a\u30bb\u30eb\u306b\u7d5e\u3089\u308c\u3066\u3044\u304f\u3053\u3068\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u4e0a\u8a18\u306e\u30d7\u30ed\u30bb\u30b9\u306e\u7279\u5b9a\u306e\u30bb\u30eb\u304c1\u3064\u306e\u9078\u629e\u80a2\u306b\u78ba\u5b9a\u3001\u96a3\u63a5\u3059\u308b\u30bb\u30eb\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304c\u6e1b\u5c11\u3057\u3066\u3044\u304f\u69d8\u5b50\u304c\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u3092\u7528\u3044\u3066\u8996\u899a\u7684\u306b\u7406\u89e3\u3057\u3084\u3059\u304f\u8a66\u305b\u308b\u30c7\u30e2\u304c\u3053\u3061\u3089\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 3ffd5bda-700e-4e70-b3ec-46dd03827e4c --><\/p>\n<p><a href=\"https:\/\/bolddunkley.itch.io\/wfc-mixed\" target=\"_blank\" rel=\"noopener\">https:\/\/bolddunkley.itch.io\/wfc-mixed<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11636\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_6.png\" alt=\"\" width=\"445\" height=\"468\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_6.png 810w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_6-285x300.png 285w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_6-768x808.png 768w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/p>\n<p>\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u3092\u30af\u30ea\u30c3\u30af\u3067\u9078\u629e\u3059\u308b\u3068\u3001\u96a3\u63a5\u3059\u308b\u30bb\u30eb\u306e\u60c5\u5831\u3082\u6e1b\u5c11\u3057\u9078\u629e\u80a2\u3082\u7d5e\u308c\u3066\u3044\u304d\u3001\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u3092\u78ba\u5b9a\u3057\u3066\u304f\u69d8\u5b50\u304c\u78ba\u8a8d\u3067\u304d\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\u3082\u3063\u3068\u30b7\u30f3\u30d7\u30eb\u306a\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u306b\u7f6e\u304d\u63db\u3048\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002\u4ee5\u4e0b\u306e\u69d8\u306a\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u753b\u50cf\u3092\u7528\u3044\u3066\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u751f\u6210\u3059\u308b\u3068\u3057\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 86e98ac8-0cf1-4c17-9f17-4db7f498fbcb --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11637\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c1.png\" alt=\"\" width=\"439\" height=\"94\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c1.png 500w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c1-300x64.png 300w\" sizes=\"auto, (max-width: 439px) 100vw, 439px\" \/><\/p>\n<p>\u5358\u8272\u3067\u5857\u308a\u3064\u3076\u3055\u308c\u305fBlank\u753b\u50cf\u3001\u4e0a\u4e0b\u5de6\u53f3\u306b\u56de\u8ee2\u3055\u308c\u305fT\u753b\u50cf\u3002\u5404\u30bf\u30a4\u30eb\u3067\u30b3\u30cd\u30af\u30c8\u3055\u308c\u308b\u95a2\u4fc2\u6027\u3092\u30bf\u30a4\u30eb\u306e\u30a8\u30c3\u30b8\u306b\u63a5\u7d9a\u53ef\u80fd\u3092\u793a\u3059\u4f55\u3089\u304b\u306e\u8b58\u5225\u5b50\u3092\u6301\u305f\u305b\u307e\u3059\u3002\u305d\u306e\u8b58\u5225\u5b50\u30920\u30011\u3068\u6570\u5b57\u306e\u30bd\u30b1\u30c3\u30c8\u3068\u3057\u3066\u6301\u3063\u305f\u5834\u5408\u3001\u4ee5\u4e0b\u306e\u69d8\u306b\u306a\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002<!-- notionvc: f6ec170a-fb95-4278-b0bb-492af7041e6c --> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11638\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c2.png\" alt=\"\" width=\"602\" height=\"172\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c2.png 700w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c2-300x86.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>\u5358\u8272\u3067\u5857\u308a\u3064\u3076\u3055\u308c\u305fBlank\u753b\u50cf\u306e\u5404\u30a8\u30c3\u30b8\u306e\u30bd\u30b1\u30c3\u30c8\u306f\u5168\u30660\u3002T\u753b\u50cf\u306e\u6301\u3064\u30bd\u30b1\u30c3\u30c8\u306f0\u3068\uff11\u3067\u30010\u306f0\u3068\u30b3\u30cd\u30af\u30c8\u3057\u30011\u306f1\u3068\u30b3\u30cd\u30af\u30c8\u3057\u30010\u3068\uff11\u306e\u30b3\u30cd\u30af\u30c8\u306f\u7121\u52b9\u3068\u306a\u308a\u307e\u3059\u3002\u7528\u610f\u3057\u305fBlank\u753b\u50cf\u3068T\u753b\u50cf\u306e\u96a3\u63a5\u95a2\u4fc2\u306f\u4ee5\u4e0b\u306e\u69d8\u306b\u306a\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002<!-- notionvc: d1e6482e-61a1-4761-964c-b9ad3e24cda2 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11639\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c3.png\" alt=\"\" width=\"717\" height=\"250\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c3.png 786w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c3-300x105.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c3-768x268.png 768w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/p>\n<p>\u3082\u3061\u308d\u3093\u30010\u30681\u306e\u307f\u306a\u3089\u305a\u30012\u30843\u3068\u5897\u3084\u3059\u3053\u3068\u3082\u53ef\u80fd\u3067\u3001\u5236\u7d04\u306e\u4e0e\u3048\u65b9\u3082\u69d8\u3005\u3067\u3059\u3002<\/p>\n<p>\u306a\u306b\u3088\u308a\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u306f\u3001\u30bb\u30eb\u5883\u754c\u3067\u4e00\u81f4\u3057\u306a\u3044\u30bf\u30a4\u30eb\u306e\u96a3\u63a5\u95a2\u4fc2\u3092\u7121\u52b9\u306b\u3059\u308b\u3002\u3068\u3044\u3046\u3068\u3053\u308d\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>Oskar Stal Berg\u6c0f\u306e\u6709\u540d\u306a\u30c7\u30e2\u3067\u306f\u3001\u30bf\u30a4\u30eb\u306e\u30a8\u30c3\u30b8\u306b\u6cbf\u3063\u305f 3\u3064\u306e\u56fa\u5b9a\u70b9\u306e\u30d4\u30af\u30bb\u30eb\u306b\u3088\u3063\u3066\u30bd\u30b1\u30c3\u30c8\u306f\u6c7a\u5b9a\u3055\u308c\u3001\u96a3\u63a5\u3059\u308b\u30bf\u30a4\u30eb\u306e\u8272\u304c3\u3064\u306e\u70b9\u3067\u4e00\u81f4\u3059\u308b\u304b\u3069\u3046\u304b\u3067\u3092\u691c\u8a3c\u3057\u96a3\u63a5\u95a2\u4fc2\u306e\u7121\u52b9\u3001\u6709\u52b9\u5316\u3092\u884c\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/oskarstalberg.com\/game\/wave\/wave.html\" target=\"_blank\" rel=\"noopener\">https:\/\/oskarstalberg.com\/game\/wave\/wave.html<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11640\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_7-1024x606.png\" alt=\"\" width=\"676\" height=\"400\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_7-1024x606.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_7-300x178.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_7-768x455.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_7-1536x909.png 1536w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_7-2048x1213.png 2048w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><\/p>\n<p>\u62e1\u5927\u3059\u308b\u3068\u3001\u5404\u30a8\u30c3\u30b8\u306b3\u3064\u306e\u8272\u60c5\u5831\u3092\u6301\u3063\u3066\u3044\u308b\u306e\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<!-- notionvc: eabde56e-6868-4568-a938-5c4b47ee12f0 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11641\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_8-1024x356.png\" alt=\"\" width=\"736\" height=\"256\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_8-1024x356.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_8-300x104.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_8-768x267.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wave_ss_8.png 1334w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/p>\n<p>\u3053\u306e\u69d8\u306b\u3001\u30bb\u30eb\u306e\u5404\u30a8\u30c3\u30b8\u306e\u30bd\u30b1\u30c3\u30c8\u30921\u3064\u3067\u306f\u306a\u304f\u30013\u3064\u306b\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3088\u308a\u8a73\u7d30\u306a\u96a3\u63a5\u95a2\u4fc2\u306e\u5236\u7d04\u3092\u6301\u305f\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u8907\u96d1\u306a\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u306a\u8272\u5f69\u306b\u6cbf\u3063\u305f\u6ed1\u3089\u304b\u306a\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u3082\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3068\u306a\u3063\u3066\u304a\u308a\u307e\u3059\u3002<!-- notionvc: d9068f6a-bce7-4315-b760-59e0045f74ba --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11643\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c4-991x1024.png\" alt=\"\" width=\"437\" height=\"452\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c4-991x1024.png 991w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c4-290x300.png 290w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c4-768x794.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c4.png 1382w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/p>\n<p>\u4eca\u56de\u306f\u3001\u8272\u60c5\u5831\u3092\u30d9\u30fc\u30b9\u3068\u3057\u3001\u8272\u60c5\u5831\u3067\u306f\u306a\u304fA\u3001B\u3001C\u3068\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u3067\u8b58\u5225\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\u3002<!-- notionvc: 07923db7-d5b0-4814-9382-89d6f6407b90 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11644\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c5.png\" alt=\"\" width=\"592\" height=\"169\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c5.png 700w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c5-300x86.png 300w\" sizes=\"auto, (max-width: 592px) 100vw, 592px\" \/><\/p>\n<p>\u7d50\u5c40\u306e\u3068\u3053\u308d\u3001\u30bf\u30a4\u30eb\u30e2\u30c7\u30eb\u306b\u304a\u3051\u308b\u96a3\u63a5\u95a2\u4fc2\u3067\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u306f\u3001<\/p>\n<p>\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u30b9\u30ed\u30c3\u30c8\u3067\u304d\u308b\u304b\u3001\u3067\u304d\u306a\u3044\u304b\u3001\u307e\u305f\u3001\u305d\u308c\u3089\u306f\u3069\u306e\u65b9\u5411\u304c\u6709\u52b9\u304b\u7121\u52b9\u5316\u304c\u5927\u4e8b\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\uff082\u520611\u79d2\u7d4c\u904e\uff09<\/p>\n<h4>\u5b9f\u88c5<!-- notionvc: 15945bc7-9ec2-47dd-ba10-4d07383b1db9 --><\/h4>\n<p><!-- notionvc: b1defc8f-cf2d-42f9-b5b1-b1457e20c054 --><\/p>\n<p>\u305d\u308c\u3067\u306f\u3001\u4ed5\u69d8\u3082\u51fa\u63c3\u3063\u305f\u3068\u3053\u308d\u306a\u306e\u3067\u5b9f\u88c5\u306b\u5165\u3063\u3066\u884c\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f\u3001Flutter\u3001Flame\u3092\u7528\u3044\u3066\u306e\u5b9f\u88c5\u3068\u306a\u308a\u3001\u74b0\u5883\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<p><!-- notionvc: bf72803e-ec7e-417d-95da-ab8e21aafc27 --><\/p>\n<ul>\n<li>Dart SDK version: 3.2.2<\/li>\n<li>Flutter 3.16.2<\/li>\n<li>flame: ^1.11.0<!-- notionvc: da48dd1d-5a13-4efa-b9c9-639b978e4af1 --><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<p>\u4eca\u56de\u306f\u3001Flutter\u306e\u30b2\u30fc\u30e0\u30a8\u30f3\u30b8\u30f3Flame\u3092\u7528\u3044\u3066\u4f5c\u6210\u3057\u307e\u3059\u3002<!-- notionvc: 2fc13474-95b7-4e92-bd8e-43ccd05e321f --><\/p>\n<p>WFC\u306e\u5927\u304d\u306a\u6d41\u308c\u3068\u3057\u3066\u306f\u3001\u521d\u671f\u8a2d\u5b9a\u3068\u3057<\/p>\n<ul>\n<li>\u30bf\u30a4\u30eb\u306e\u753b\u50cf\u3001\u5236\u7d04\u60c5\u5831\u3092\u5165\u529b\u30c7\u30fc\u30bf\u3068\u3059\u308b<\/li>\n<li>\u30b0\u30ea\u30c3\u30c9\u5185\u306b\u30bb\u30eb\u3068\u3057\u3066\u5168\u3066\u306e\u53ef\u80fd\u6027\u3068\u3057\u3066\u4fdd\u6301<\/li>\n<\/ul>\n<p>WFC\u5b9f\u884c\u30d5\u30ed\u30fc\u3068\u3057\u3066\u3001<\/p>\n<ul>\n<li>\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u4f4e\u3044\u30bb\u30eb\u3092\u512a\u5148\u3059\u308b\u305f\u3081\u3001\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3066\u53d6\u5f97<\/li>\n<li>\u30bf\u30a4\u30eb\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u629e\u3001\u30bb\u30eb\u30921\u3064\u306e\u9078\u629e\u80a2\u306b\u78ba\u5b9a\u3002<\/li>\n<li>\u96a3\u63a5\u3059\u308b\u30bb\u30eb\u306e\u30bd\u30b1\u30c3\u30c8\u3092\u8a55\u4fa1\u3057\u3001\u5404\u30bb\u30eb\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u3092\u6e1b\u5c11<\/li>\n<li>\u4f1d\u64ad\u3057\u7d42\u308f\u308b\u3068\u518d\u5ea6\u51e6\u7406\u3092\u5b9f\u884c<\/li>\n<\/ul>\n<p><!-- notionvc: 94049708-3732-49bb-9de1-6cbe2ffeecae --><\/p>\n<p>\u3068\u306a\u308a\u3001\u5168\u3066\u306e\u30bb\u30eb\u304c\u5d29\u58ca\u3001\u3064\u307e\u308a1\u3064\u306e\u9078\u629e\u80a2\u306b\u78ba\u5b9a\u3068\u306a\u308b\u3068WFC\u306e\u51e6\u7406\u306f\u7d42\u4e86\u3068\u306a\u308a\u307e\u3059\u3002<!-- notionvc: bbd6e2e5-5b36-49b2-9840-be1c82c89b23 --><\/p>\n<h5><span class=\"notion-enable-hover\" data-token-index=\"0\">\u30bf\u30a4\u30eb\u306e\u753b\u50cf\u3001\u5236\u7d04\u60c5\u5831\u3092\u5165\u529b\u30c7\u30fc\u30bf\u3068\u3059\u308b<\/span><!-- notionvc: 8c1ed56b-2ddc-4066-9b1a-827045c5a9b2 --><\/h5>\n<p>\u307e\u305a\u3001\u30bf\u30a4\u30eb\u306e\u753b\u50cf\u3068\u5236\u7d04\u60c5\u5831\u3092\u6301\u3063\u305f\u30c7\u30fc\u30bf\u306e\u4f5c\u6210\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<p>JSON\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u3001\u7528\u610f\u3057\u307e\u3059\u3002\u30b9\u30ad\u30fc\u30de\u306e\u8a73\u7d30\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<\/p>\n<ul>\n<li>src: \u753b\u50cf\u306e\u30d1\u30b9<\/li>\n<li>edges: \u5404\u30a8\u30c3\u30b8\u306e\u30bd\u30b1\u30c3\u30c8\u6761\u4ef6<\/li>\n<li>isRotate: \u56de\u8ee2\u53ef\u80fd\u304b\u5426\u304b<\/li>\n<\/ul>\n<p><!-- notionvc: dd511ad7-08b9-4c4f-aa67-e51b26302029 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"monokai\">\"tileList\": [\n    {\n      \"src\": \"simple\/blank.png\",\n      \"edges\": [\"AAA\", \"AAA\", \"AAA\", \"AAA\"],\n      \"isRotate\": false\n    },\n    {\n      \"src\": \"simple\/t.png\",\n      \"edges\": [\"AAA\", \"ABA\", \"ABA\", \"ABA\"],\n      \"isRotate\": true\n    }]\n}<\/pre>\n<p>edges\u306f\u3001\u4e0a\u3001\u53f3\u3001\u4e0b\u3001\u5de6\u306e\u9806\u756a\u3067\u8a18\u8ff0\u3057\u3066\u3044\u307e\u3059\u3002<!-- notionvc: 65b7d806-f4f0-423b-a578-3c21e59d4ee3 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11645\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d1.png\" alt=\"\" width=\"206\" height=\"186\" \/><\/p>\n<p>\u4e0a\u90e8\u306e\u7aef\u306f\u3001\u300c\u5de6\u3001\u4e2d\u3001\u53f3\u300d\u3001\u53f3\u90e8\u306e\u7aef\u306f\u3001\u300c\u4e0a\u3001\u4e2d\u3001\u4e0b\u300d\u3001\u4e0b\u90e8\u306e\u7aef\u306f\u3001\u300c\u53f3\u3001\u4e2d\u3001\u5de6\u300d\u3001\u5de6\u90e8\u306e\u7aef\u306f\u3001\u300c\u4e0b\u3001\u4e2d\u3001\u4e0a\u300d\u3068\u3044\u3063\u305f\u9806\u756a\u3067\u5f62\u3067edges\u306b\u914d\u5217\u3067\u8a18\u8ff0\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>isRotate\u306b\u95a2\u3057\u3066\u306f\u3001\u300c<strong>\u56de\u8ee2\u3057\u3066\u5229\u7528\u3067\u304d\u308b\u304b\u5426\u304b<\/strong>\u300d\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u5358\u8272\u306eblank\u306f\u56de\u8ee2\u3057\u3066\u5229\u7528\u3057\u3066\u3082\u5411\u304d\u3001\u5f62\u304c\u4f55\u3082\u5909\u308f\u308a\u307e\u305b\u3093\u306e\u3067\u56de\u8ee2\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u3001\u9006\u306bT\u753b\u50cf\u306b\u95a2\u3057\u3066\u306f\u5168\u3066\u306e\u5411\u304d\u306e\u753b\u50cf\u5206\u306e\u7a2e\u985e\u306e\u7528\u610f\u306e\u5fc5\u8981\u304c\u306a\u304f\u30011\u3064\u3092\u6642\u8a08\u56de\u308a\u306b90\u5ea6\u305a\u30643\u56de\u56de\u8ee2\u3055\u305b\u3066\u6d41\u7528\u3059\u308b\u3053\u3068\u3067\u30011\u679a\u306e\u753b\u50cf\u30674\u30d1\u30bf\u30fc\u30f3\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p>\u306a\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u7db2\u7f85\u3059\u308b\u306b\u306f\u30012\u679a\u306e\u753b\u50cf\u304c\u3042\u308c\u3070\u30ab\u30d0\u30fc\u3067\u304d\u307e\u3059\u306e\u30672\u679a\u306e\u753b\u50cf\u3067\u56de\u8ee2\u3092\u542b\u3081\u305f5\u30d1\u30bf\u30fc\u30f3\u306e\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u3092\u7528\u610f\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: b0861c30-e4a6-4946-a698-8b3320950944 --><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11644\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c5.png\" alt=\"\" width=\"602\" height=\"172\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c5.png 700w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_c5-300x86.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<h5>Grid\u3001Tile class\u306e\u4f5c\u6210<\/h5>\n<p>\u4eca\u56de\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306f\u4ee5\u4e0b\u306e\u69d8\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<p><!-- notionvc: ad7b9b5d-db9d-48e6-b57a-a40556f95780 --><\/p>\n<p><strong><span class=\"notion-enable-hover\" data-token-index=\"0\">\u30d5\u30a1\u30a4\u30eb\u69cb\u6210<\/span><\/strong><!-- notionvc: 202fe170-6a44-4877-9e6a-161305f255c7 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"monokai\">lib\/\n\u251c\u2500\u2500 components\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 cell.dart\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 tile.dart\n\u251c\u2500\u2500 constants\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 defines.dart\n\u251c\u2500\u2500 core\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 wfc.dart\n\u251c\u2500\u2500 game.dart\n\u251c\u2500\u2500 main.dart\n\u251c\u2500\u2500 main_game_page.dart\n\u2514\u2500\u2500 utility\n    \u2514\u2500\u2500 utility.dart<\/pre>\n<p>\u5404\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6982\u8981\u306f\u3001<\/p>\n<ul>\n<li>components: \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3002\u4e3b\u306bcell\u3001tiles\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/li>\n<li>constants: \u5b9a\u6570\u3001\u30b3\u30f3\u30d5\u30a3\u30b0\u306a\u3069\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb<\/li>\n<li>core: WFC\u30e1\u30a4\u30f3\u306e\u51e6\u7406<\/li>\n<li>utility: \u305d\u306e\u4ed6\u306e\u51e6\u7406<\/li>\n<li>game.dart: \u63cf\u753b\u542b\u3081\u305f\u30b2\u30fc\u30e0\u30eb\u30fc\u30d7<\/li>\n<\/ul>\n<p>\u3068\u306a\u3063\u3066\u304a\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 290d26dc-4ec2-4019-8056-690dcaf547b9 --><\/p>\n<p>\u305d\u308c\u3067\u306f\u3001\u5b9f\u30bd\u30fc\u30b9\u306e\u65b9\u3092\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u3001\u4eca\u56de\u306fFlutter\u3001Flame\u3092\u7528\u3044\u3066\u3044\u308b\u306e\u3082\u3042\u308a\u3001\u4ee5\u4e0b\u306e\u69d8\u306bFlameGame\u3092\u7d99\u627f\u3057\u305fMainClass\u306eMainGame\u3092\u7528\u610f\u3057\u3001Cell\u306e\u914d\u5217\u3092\u683c\u7d0d\u3059\u308bgrid\u3068Tile\u306e\u914d\u5217\u3092\u683c\u7d0d\u3059\u308btiles\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u7528\u610f\u3057\u307e\u3059\u3002<\/p>\n<p>grid\u306f\u30bf\u30a4\u30eb\u30de\u30c3\u30d7\u5168\u4f53\u3068\u306a\u3063\u3066\u304a\u308a\u3001\u30bf\u30a4\u30eb\u306e\u30de\u30b9\u5206Cell\u304c\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001tiles\u306f\u5148\u7a0bJSON\u30d5\u30a1\u30a4\u30eb\u3067\u7528\u610f\u3057\u305f\u30c7\u30fc\u30bf\u3092\u5143\u306b\u751f\u6210\u3055\u308c\u305fTile class\u3092\u683c\u7d0d\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 7fff4993-175c-46e5-910a-80898c624b7d --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">class MainGame extends FlameGame with KeyboardEvents, TapCallbacks {\n  List&lt;Cell&gt; grid = [];\n  List&lt;Tile&gt; tiles = [];\n  ...<\/pre>\n<p>Tile Class\u306f\u4ee5\u4e0b\u306e\u69d8\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>JSON\u30d5\u30a1\u30a4\u30eb\u3067\u5b9a\u7fa9\u3057\u305fedges\u3001isRotate\u3092\u4fdd\u6301\u3057\u3001image\u306epath\u3092\u5143\u306bSpriteComponent\u3092\u751f\u6210\u3057\u307e\u3059\u3002\u307e\u305f\u3001\u56de\u8ee2\u304c\u5fc5\u8981\u3067\u3042\u308c\u3070angle\u306e\u5024\u3082\u8a08\u7b97\u3002<\/p>\n<p>\u305d\u306e\u4ed6\u306b\u3001\u30b3\u30cd\u30af\u30c8\u3067\u304d\u308bTile\u306eindex\u3092\u4fdd\u6301\u3059\u308b\u914d\u5217\u3001 up\u3001right\u3001down\u3001left\u3092 int\u306eList\u3067\u7528\u610f\u3057\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: e57741f7-6e73-4e3d-b013-908119c95922 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">class Tile {\n  double angle = 0.0;\n  SpriteComponent img;\n  bool isRotate = false;\n  List&lt;String&gt; edges;\n  List&lt;int&gt; up = [];\n  List&lt;int&gt; right = [];\n  List&lt;int&gt; down = [];\n  List&lt;int&gt; left = [];\n  ...<\/pre>\n<p>initTiles\u95a2\u6570\u3067\u3001JSON\u3088\u308aTile\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u751f\u6210\u3057\u307e\u3059\u3002<!-- notionvc: bd3674da-a690-4fb8-af66-db3db5f8ac1b --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">Future&lt;void&gt; initTiles() async {\n    await createTilesFromJson(tiles);\n    createRotateTiles(tiles.length);\n  }\n\nFuture&lt;void&gt; createTilesFromJson(List&lt;Tile&gt; tiles) async {\n  var tileListData = await loadJsonData(jsonFileName);\n  for (int i = 0; i &lt; tileListData['tileList'].length; i++) {\n    var tileData = tileListData['tileList'][i];\n    tiles.add(await Tile.load(tileData['src'],\n        List&lt;String&gt;.from(tileData['edges']), tileData['isRotate']));\n  }\n}<\/pre>\n<p>isRotate\u306e\u30d5\u30e9\u30b0\u304c\u7acb\u3063\u305f\u3082\u306e\u306b\u95a2\u3057\u3066\u306f\u56de\u8ee2\u30d0\u30fc\u30b8\u30e7\u30f3\u306eTile\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n<p>90\u5ea6\u3001180\u5ea6\u3001270\u5ea6\u306e\u56de\u8ee2\u306e3\u7a2e\u985e\u3092\u8ffd\u52a0\u3059\u308b\u306e\u3067\u30011\/2\u03c0 * n \u304c\u884c\u3048\u308b\u3088\u3046\u306bfor\u6587\u306f1\u59cb\u307e\u308a\u3068\u3057\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 6c8130c9-472c-4c32-9a0c-14b8b492a3a7 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">void createRotateTiles(int tileLength) {\n  for (int i = 0; i &lt; tileLength; i++) {\n    if (tiles[i].isRotate) {\n      for (int j = 1; j &lt; 4; j++) {\n        tiles.add(tiles[i].rotate(j));\n      }\n    }\n  }\n}<\/pre>\n<p>\u3053\u3061\u3089\u306e\u51e6\u7406\u3092\u7d42\u3048\u3001\u5168\u3066\u306eTile\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u6210\u306f\u884c\u3048\u307e\u3057\u305f\u3002<!-- notionvc: 0219e9a5-de08-460b-a691-ca6c9f4b1bbf --><\/p>\n<h5>\u5404\u30bf\u30a4\u30eb\u306e\u96a3\u63a5\u6027\u3092\u4f5c\u6210<!-- notionvc: 2686254b-1f1a-4b69-a8e7-a5b1fb351fd7 --><\/h5>\n<p>generatingAdjacencyRules\u95a2\u6570\u306b\u3066\u3001\u5168\u30bf\u30a4\u30eb\u306e\u96a3\u63a5\u95a2\u4fc2\u306e\u8a55\u4fa1\u3092\u884c\u3044\u305d\u306e\u30bf\u30a4\u30eb\u306f \u4e0a\u3001\u53f3\u3001\u4e0b\u3001\u5de6\u306b\u3069\u306e\u30bf\u30a4\u30eb\u3068\u30b3\u30cd\u30af\u30c8\u53ef\u80fd\u304b\u3092\u8abf\u3079\u307e\u3059\u3002<!-- notionvc: c7d12b9a-6f45-40b3-8a65-1dbd37a842cc --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">void generatingAdjacencyRules() {\n  for (var tile in tiles) {\n    tile.analyze(tiles);\n  }\n}<\/pre>\n<p>\u81ea\u5206\u81ea\u8eab\u306eedges\u306e0\u756a\u76ee\u306f\u4e0a\u306a\u306e\u3067\u3001\u4ed6\u306e\u30bf\u30a4\u30eb\u3068\u306f\u3001\u4e0b\u90e8\u306b\u3042\u305f\u308bedges\u306e2\u756a\u76ee\u3068\u63a5\u7d9a\u3068\u306a\u308b\u306e\u3067\u3001edges[0]\u3068edges[2]\u3092\u8a55\u4fa1\u3057\u307e\u3059\u3002<!-- notionvc: eae5950f-2df2-439f-9f47-2e679d1d7a1b --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"monokai\">void analyze(List&lt;Tile&gt; tiles) {\n  for (int i = 0; i &lt; tiles.length; i++) {\n    Tile tile = tiles[i];\n    \/\/ UP\n    if (compareEdge(tile.edges[2], edges[0])) {\n      up.add(i);\n    }\n    \/\/ RIGHT\n    if (compareEdge(tile.edges[3], edges[1])) {\n      right.add(i);\n    }\n    \/\/ DOWN\n    if (compareEdge(tile.edges[0], edges[2])) {\n      down.add(i);\n    }\n    \/\/ LEFT\n    if (compareEdge(tile.edges[1], edges[3])) {\n      left.add(i);\n    }\n  }\n}<\/pre>\n<p>\u305d\u306e\u969b\u3001edges\u306b\u683c\u7d0d\u3055\u308c\u305f\u307e\u307e\u3060\u3068\u8a55\u4fa1\u3067\u304d\u306a\u3044\u306e\u3067\u3001\u6587\u5b57\u5217\u3092\u9006\u306b\u3059\u308b\u51e6\u7406\u3092\u5165\u308c\u3066\u3044\u307e\u3059\u3002<!-- notionvc: 0b670d94-96ad-4dd7-a938-33099992e552 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">String reverseString(String s) {\n  return s.split('').reversed.join('');\n}\n\nbool compareEdge(String a, String b) {\n  return a == reverseString(b);\n}<\/pre>\n<p>\u4f8b\u3048\u3070\u3001\u4ee5\u4e0b\u306e\u69d8\u306a\u30bf\u30a4\u30eb\u30c1\u30c3\u30d7\u304c\u3042\u3063\u305f\u5834\u5408\u3001<\/p>\n<p>\u203b1 \u3053\u306e\u30bf\u30a4\u30eb\u304c\u4fdd\u6301\u3059\u308bedges\u306f[\u201dAAB\u201d, \u201dBBB\u201d, \u201dBAA\u201d, \u201dACA\u201d]\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u203b2 \u7d75\u304b\u3089\u3001\u540c\u3058\u30bf\u30a4\u30eb\u306e\u4e0a\u90e8\u3068\u4e0b\u90e8\u3067\u30b3\u30cd\u30af\u30c8\u3067\u304d\u305d\u3046\u306a\u306e\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u203b3 \u5b9f\u969b\u306b\u4e0a\u90e8\u3068\u4e0b\u90e8\u306f\u300cAAB\u300d\u3068\u300cAAB\u300d<\/p>\n<p>\u203b4 \u3057\u304b\u3057\u306a\u304c\u3089\u4e0b\u90e8\u3067\u4fdd\u6301\u3057\u3066\u3044\u308bedges\u306f\u300cBAA\u300d\u3068\u306a\u308b\u306e\u3067\u7247\u65b9\u6587\u5b57\u5217\u3092\u53cd\u8ee2\u3057\u8a55\u4fa1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: ebd46788-d291-431e-bc95-dd447c0a4729 --><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11646\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d2.png\" alt=\"\" width=\"444\" height=\"233\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d2.png 444w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d2-300x157.png 300w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><\/p>\n<p>\u5de6\u53f3\u306e\u8a55\u4fa1\u3082\u540c\u69d8\u3068\u306a\u308a\u307e\u3059\u3002<!-- notionvc: 80a8f7b0-a931-4e6c-ab6b-c1e319cfb1ee --><\/p>\n<p>\u00a0<\/p>\n<h5>Grid \u4f5c\u6210<!-- notionvc: e64d90c8-7770-4fd2-a668-19711927e894 --><\/h5>\n<p>\u6700\u521d\u306b\u8a18\u8ff0\u3057\u305f\u3001\u300c<strong>\u30b0\u30ea\u30c3\u30c9\u5185\u306b\u30bb\u30eb\u3068\u3057\u3066\u5168\u3066\u306e\u53ef\u80fd\u6027\u3068\u3057\u3066\u4fdd\u6301<\/strong>\u300d\u306e\u30d5\u30ed\u30fc\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u3001Grid\u5168\u4f53\u306e\u5927\u304d\u3055\u3092\u6c7a\u3081\u305f\u3044\u306e\u3067\u5b9a\u6570DIM\uff08<em>dimension<\/em>\uff09\u3092\u5b9a\u7fa9\u3057\u3001\u3053\u3061\u3089\u3067\u30b0\u30ea\u30c3\u30c9\u5168\u4f53\u306e\u5927\u304d\u3055\u3092\u6c7a\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<p>DIM * DIM\uff08\u7e26 * \u6a2a\uff09\u3067\u3001Grid\u4f5c\u6210\u3068\u540c\u6642\u306b Cell\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 49b89e69-7582-4d9a-8a9c-2e4ff763cf8d --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">const int DIM = 15;<\/pre>\n<p>fromValue\u30d5\u30a1\u30af\u30c8\u30ea\u30fc\u30e1\u30bd\u30c3\u30c9\u3067\u3001Cell\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u751f\u6210\u3057\u307e\u3059\u3002<!-- notionvc: ceabbf60-5252-4dca-bb80-ae3f9b62c275 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">void initGrid() {\n  grid = List.generate(DIM * DIM, (index) =&gt; Cell.fromValue(tiles.length));\n}<\/pre>\n<p>Cell\u306esockets\u306fTile\u306eindex\u3068\u306a\u308a\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u521d\u671f\u72b6\u614b\u306f\u300c\u5168\u3066\u306e\u53ef\u80fd\u6027\u3092\u6301\u3063\u305f\u300d\u72b6\u614b\u3068\u306a\u308a\u3001\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u3082\u6700\u5927\u306eTile\u306e\u5168\u4f53\u6570\u3068\u306a\u308a\u307e\u3059\u3002<!-- notionvc: 2ecde131-1772-4452-9b8b-1519ca45ab99 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"diff\" data-enlighter-theme=\"monokai\">class Cell {\n  bool collapsed = false;\n  List&lt;int&gt; sockets = [];\n\n  Cell.fromValue(int value)\n      : collapsed = false,\n        sockets = List&lt;int&gt;.generate(value, (i) =&gt; i);\n\n  Cell.fromList(List&lt;int&gt; value)\n      : collapsed = false,\n        sockets = value;\n}<\/pre>\n<p>\uff083\u520621\u79d2\u7d4c\u904e\uff09<!-- notionvc: 25443480-2017-4eff-9ae5-9eec48b4bdaa --><\/p>\n<h5>Wave Function Collapse &#8211; \u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 \u30e1\u30a4\u30f3\u30d5\u30ed\u30fc<!-- notionvc: 32dd7e26-e39a-4546-82be-45735c3b689f --><\/h5>\n<p>\u6e96\u5099\u306f\u6574\u3044\u307e\u3057\u305f\u306e\u3067\u3001\u3053\u3053\u304b\u3089Wave Function Collapse &#8211; \u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 \u306e\u30e1\u30a4\u30f3\u30d5\u30ed\u30fc\u3068\u306a\u308a\u307e\u3059\u3002<!-- notionvc: 5943f449-52cc-43d8-8cb4-bd26af533ab2 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"monokai\">@override\nvoid update(double dt) {\n  super.update(dt);\n  mainLoop();\n}\n\nvoid mainLoop() {\n  List&lt;Cell&gt; lowEntropyGrid = pickCellWithLeastEntropy(grid);\n  if (lowEntropyGrid.isEmpty) {\n    return;\n  }\n  if (!randomSelectionOfSockets(lowEntropyGrid)) {\n    initGrid();\n    return;\n  }\n  grid = waveCollapse(grid, tiles);\n}<\/pre>\n<p>\u518d\u5ea6\u6d41\u308c\u3092\u632f\u308a\u8fd4\u308b\u3068\u3001<\/p>\n<ul>\n<li>\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u4f4e\u3044\u30bb\u30eb\u3092\u512a\u5148\u3059\u308b\u305f\u3081\u3001\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3066\u53d6\u5f97\n<ul>\n<li>pickCellWithLeastEntropy<\/li>\n<\/ul>\n<\/li>\n<li>\u30bf\u30a4\u30eb\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u629e\u3001\u30bb\u30eb\u30921\u3064\u306e\u9078\u629e\u80a2\u306b\u78ba\u5b9a\u3002\n<ul>\n<li>randomSelectionOfSockets<\/li>\n<\/ul>\n<\/li>\n<li>\u96a3\u63a5\u3059\u308b\u30bb\u30eb\u306e\u30bd\u30b1\u30c3\u30c8\u3092\u8a55\u4fa1\u3057\u3001\u5404\u30bb\u30eb\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u3092\u6e1b\u5c11\n<ul>\n<li>waveCollapse<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: d369068f-d1f1-4c09-a530-5cc277098ff3 --><\/p>\n<h5>pickCellWithLeastEntropy<!-- notionvc: cd0103f4-fdaa-43db-a4b2-bca934172401 --><\/h5>\n<p>\u300c<strong>\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u4f4e\u3044\u30bb\u30eb\u3092\u512a\u5148\u3059\u308b\u305f\u3081\u3001\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3066\u53d6\u5f97<\/strong>\u300d\u3092\u884c\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u3001\u73fe\u5728\u306egrid\u306e\u72b6\u614b\u3092\u30b7\u30e3\u30ed\u30fc\u30b3\u30d4\u30fc\u3057gridCopy\u5909\u6570\u306b\u683c\u7d0d\u3057\u307e\u3059\u3002<\/p>\n<p>\u305d\u306ecell\u81ea\u8eab\u304ccollapsed\u3001\u3064\u307e\u308a\u30bb\u30eb\u304c\u78ba\u5b9a\u3057\u3066\u3044\u308b\u306e\u3067\u3042\u308c\u3070\u7121\u8996\u3057\u3001\u30bb\u30eb\u304c\u78ba\u5b9a\u3057\u3066\u3044\u306a\u3044\u3082\u306e\u3067\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3057\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\u305d\u306e\u5f8c\u3001\u30bb\u30eb\u306esockets\u306e\u6570\u304c\u5c11\u306a\u3044\u9806\u3001\u3064\u307e\u308a\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u4f4e\u3044\u9806\u306b\u30bd\u30fc\u30c8\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<p>\u901a\u5e38\u3067\u3042\u308c\u3070\u304d\u3061\u3093\u3068\u8a08\u7b97\u3084\u91cd\u307f\u3064\u3051\u306a\u3069\u3082\u8003\u616e\u3057\u307e\u3059\u304c\u3001\u4eca\u56de\u306f\u5358\u7d14\u306b\u4f4e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306fsockets\u306e\u5c11\u306a\u3044\u9806\u3068\u3057\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 5cc2d950-68af-44fe-9b40-985e0bfe1014 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">List&lt;Cell&gt; pickCellWithLeastEntropy(List&lt;Cell&gt; grid) {\n  List&lt;Cell&gt; gridCopy = List&lt;Cell&gt;.from(grid);\n  gridCopy = gridCopy.where((a) =&gt; !a.collapsed).toList();\n\n  if (gridCopy.isEmpty) {\n    return [];\n  }\n  gridCopy.sort((a, b) =&gt; a.sockets.length - b.sockets.length);\n\n  int len = gridCopy[0].sockets.length;\n  int stopIndex = 0;\n  for (int i = 1; i &lt; gridCopy.length; i++) {\n    if (gridCopy[i].sockets.length &gt; len) {\n      stopIndex = i;\n      break;\n    }\n  }\n\n  if (stopIndex &gt; 0) {\n    gridCopy.removeRange(stopIndex, gridCopy.length);\n  }\n\n  return gridCopy;\n}<\/pre>\n<p>\u305d\u306e\u5f8c\u3001\u6700\u5c0f\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u3068\u3057\u3066\u3001\u6700\u521d\u306ecell\u306esockets\u306e\u6570\u3092\u8abf\u3079\u305d\u308c\u3092\u8d85\u3048\u308b\u5834\u5408\u306f\u6392\u9664\u3057\u307e\u3059\u3002<\/p>\n<p>\u3064\u307e\u308a\u3001[1,2],[1,2],[1,2],[1,2,3] \u3068\u306a\u3063\u305f\u6642\u70b9\u3067\u305d\u306eindex\u3092\u53d6\u5f97\u3057removeRange\u3067\u30ab\u30c3\u30c8\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 8e88c997-9d8a-4bf6-81b1-20be842e3b1e --><\/p>\n<p>\u00a0<\/p>\n<h5>randomSelectionOfSockets<!-- notionvc: 5933a3e5-f311-45e1-9d3c-e8060becf6b2 --><\/h5>\n<p>\u300c<strong>\u30bf\u30a4\u30eb\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u629e\u3001\u30bb\u30eb\u30921\u3064\u306e\u9078\u629e\u80a2\u306b\u78ba\u5b9a<\/strong>\u300d\u3092\u884c\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u3053\u3067\u306f\u3001\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408\u306e\u8003\u616e\u3082\u884c\u3044\u307e\u3059\u3002<\/p>\n<p>\u300c<strong>\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408<\/strong>\u300d\u3068\u306f\u3001\u5236\u7d04\u30eb\u30fc\u30eb\u306b\u3088\u3063\u3066\u306f\u30b3\u30cd\u30af\u30c8\u3067\u304d\u305a\u30d1\u30bf\u30fc\u30f3\u304c\u306a\u304f\u306a\u308b\u4e8b\u3082\u767a\u751f\u3059\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u306e\u969b\u3001\u518d\u5ea6\u6700\u521d\u304b\u3089\u3084\u308a\u76f4\u3059\u305f\u3081 Grid\u3092\u521d\u671f\u5316\u3057\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: e899f4f4-ccad-462b-8e25-dc6a9fbb0631 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">if (!randomSelectionOfSockets(lowEntropyGrid)) {\n  initGrid();\n  return;\n}<\/pre>\n<p>randomSelectionOfSockets\u95a2\u6570\u306f\u6700\u5c0f\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u30b0\u30eb\u30fc\u30d7\u304b\u3089cell\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u629e\u3057\u3001collapsed\u3092true\u306b\u78ba\u5b9a\u30d5\u30e9\u30b0\u3092\u7acb\u3066\u307e\u3059\u3002\u305d\u306ecell\u306esockets\u304b\u3089\u3069\u306e\u30bf\u30a4\u30eb\u306b\u3059\u308b\u304b\u3082\u30e9\u30f3\u30c0\u30e0\u9078\u629e\u3057\u3001\u30bf\u30a4\u30eb\u3092\u78ba\u5b9a\u3055\u305b\u307e\u3059\u3002<!-- notionvc: 06d61f18-7f71-4355-8e3d-b054986b1bcb --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">bool randomSelectionOfSockets(List&lt;Cell&gt; gridTarget) {\n  Random random = Random();\n\n  Cell cell = gridTarget[random.nextInt(gridTarget.length)];\n  cell.collapsed = true;\n\n  if (cell.sockets.isEmpty) {\n    return false;\n  }\n\n  var pick = cell.sockets[random.nextInt(cell.sockets.length)];\n  cell.sockets = [pick];\n  return true;\n}<\/pre>\n<p>\uff084\u52069\u79d2\u7d4c\u904e\uff09<!-- notionvc: 64a50f70-8442-4175-bf69-94c7c30735da --><\/p>\n<p>\u00a0<\/p>\n<h5>waveCollapse<!-- notionvc: f710e4f8-4ff3-45eb-8143-218aeddc5058 --><\/h5>\n<p>\u3044\u3088\u3044\u3088\u3001WFC\u306e\u30b3\u30a2\u306e\u90e8\u5206\u306b\u8feb\u3063\u3066\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u6700\u5f8c\u306e\u30d5\u30ed\u30fc\u300c<strong>\u96a3\u63a5\u3059\u308b\u30bb\u30eb\u306e\u30bd\u30b1\u30c3\u30c8\u3092\u8a55\u4fa1\u3057\u3001\u5404\u30bb\u30eb\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u3092\u6e1b\u5c11<\/strong>\u300d\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u6539\u3081\u3066\u3001\u3053\u3053\u3067\u884c\u3063\u3066\u3044\u308b\u4e8b\u306f\u3001\u30b0\u30ea\u30c3\u30c9\u5168\u4f53\u306e\u5de6\u7aef\u304b\u3089\u4e0a\u4e0b\u5de6\u53f3\u306e\u30bb\u30eb\u306esockets\u3001\u3059\u306a\u308f\u3061\u30b3\u30cd\u30af\u30c8\u3067\u304d\u308b\u30bf\u30a4\u30eb\u306eindex\u3092\u898b\u3066\u3001\u81ea\u5206\u81ea\u8eab\u306ecell\u306e\u72b6\u614b\u3092\u5909\u5316\u3055\u305b\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n<p>\u5404\u30bb\u30eb\u306e\u72b6\u614b\u306f\u3001\u914d\u7f6e\u53ef\u80fd\u306atile\u3092\u7d5e\u3089\u308c\u308b\u3053\u3068\u306b\u306a\u308b\u306e\u3067\u3059\u304c\u3001\u305d\u308c\u304c\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u6e1b\u5c11\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>waveCollapse\u306b\u306f\u3001grid\u3068tiles\u3092\u5f15\u6570\u306b\u6e21\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">grid = waveCollapse(grid, tiles);<\/pre>\n<p>\u00a0<\/p>\n<p><strong><span class=\"notion-enable-hover\" data-token-index=\"0\">waveCollapse\u95a2\u6570<\/span><\/strong><!-- notionvc: 33f332d0-40d6-48cf-875a-791dc208e39a --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">List&lt;Cell&gt; waveCollapse(List&lt;Cell&gt; grid, List&lt;Tile&gt; tiles) {\n  List&lt;Cell?&gt; nextGrid = List.filled(DIM * DIM, null);\n\n  for (int j = 0; j &lt; DIM; j++) {\n    for (int i = 0; i &lt; DIM; i++) {\n      int index = i + j * DIM;\n\n      if (grid[index].collapsed) {\n        nextGrid[index] = grid[index];\n      } else {\n        List&lt;int&gt; sockets = List.generate(tiles.length, (i) =&gt; i);\n        \/\/ Look up\n        if (j &gt; 0) {\n          cellCollapse(grid[i + (j - 1) * DIM], \"down\", sockets, tiles);\n        }\n        \/\/ Look right\n        if (i &lt; DIM - 1) {\n          cellCollapse(grid[i + 1 + j * DIM], \"left\", sockets, tiles);\n        }\n        \/\/ Look down\n        if (j &lt; DIM - 1) {\n          cellCollapse(grid[i + (j + 1) * DIM], \"up\", sockets, tiles);\n        }\n        \/\/ Look left\n        if (i &gt; 0) {\n          cellCollapse(grid[i - 1 + j * DIM], \"right\", sockets, tiles);\n        }\n        nextGrid[index] = Cell.fromList(sockets);\n      }\n    }\n  }\n  return nextGrid.where((cell) =&gt; cell != null).cast&lt;Cell&gt;().toList();\n}<\/pre>\n<p>\u307e\u305a\u3001\u6b21\u306eGrid\u306e\u72b6\u614b\u306b\u66f8\u304d\u63db\u3048\u7528\u306e\u7a7a\u306e\u914d\u5217nextGrid\u3092\u7528\u610f\u3002<!-- notionvc: 4a5212df-309c-48d8-a8b8-72bd8a580b6c --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">List&lt;Cell?&gt; nextGrid = List.filled(DIM * DIM, null);<\/pre>\n<p>\u30c1\u30a7\u30c3\u30af\u3059\u308b\u30bb\u30eb\u306e\u9806\u756a\u3067\u3059\u304c\u3001\u30b0\u30ea\u30c3\u30c9\u306e\u5de6\u7aef\u304b\u3089\u78ba\u8a8d\u3057\u3066\u3044\u304f\u3053\u3068\u3068\u306a\u308a\u307e\u3059\u3002<!-- notionvc: ba60991c-b097-4939-afd8-822912bd5c64 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">for (int j = 0; j &lt; DIM; j++) {\n  for (int i = 0; i &lt; DIM; i++) {<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11647\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d3.png\" alt=\"\" width=\"321\" height=\"321\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d3.png 780w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d3-300x300.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d3-150x150.png 150w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d3-768x768.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d3-120x120.png 120w\" sizes=\"auto, (max-width: 321px) 100vw, 321px\" \/><\/p>\n<p>\u3082\u3057\u3001\u5bfe\u8c61\u306e\u30bb\u30eb\u304c\u78ba\u5b9a\u3057\u3066\u3044\u308c\u3070\u305d\u306e\u30bb\u30eb\u306f\u305d\u306e\u307e\u307e\u6b21\u306e\u30b0\u30ea\u30c3\u30c9\u306e\u72b6\u614b\u306b\u6e21\u3057\u307e\u3059\u3002<!-- notionvc: ef8a172e-746f-4ffe-a43e-294d062c7268 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">if (grid[index].collapsed) {\n  nextGrid[index] = grid[index];\n}<\/pre>\n<p>\u914d\u7f6e\u3067\u304d\u308bsockets\uff08\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\uff09\u3092\u3001\u307e\u305a\u306f\u5168\u53ef\u80fd\u6027\u3092\u6301\u3063\u305f\u72b6\u614b\u3067\u521d\u671f\u5316\u3092\u884c\u3044\u307e\u3059\u3002tiles\u306e\u6570\u3060\u3051 index\u306eList\u3092\u4f5c\u6210\u3057\u3001\u305d\u3053\u304b\u3089\u7d5e\u3063\u3066\u3044\u304d\u307e\u3059\u3002<!-- notionvc: 65e72814-d2a1-486e-9172-789e31630dd5 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">List&lt;int&gt; sockets = List.generate(tiles.length, (i) =&gt; i);<\/pre>\n<p>\u7d9a\u3044\u3066\u3001\u4eca\u306e\u30bb\u30eb\u306e\u4e0a\u3001\u53f3\u3001\u4e0b\u3001\u5de6\u306e\u9806\u756a\u3067\u96a3\u5408\u3046\u30bb\u30eb\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u3044\u304d\u307e\u3059\u3002<!-- notionvc: d5d4bcd0-3ffd-4ece-9cbc-6640ee2f5d3a --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">if (j &gt; 0) {\n   cellCollapse(grid[i + (j - 1) * DIM], \"down\", sockets, tiles);<\/pre>\n<p>j\u306f\u884c\u3068\u306a\u308a\u3001j= 0\u306f\u4e00\u756a\u4e0a\u306e\u884c\u3068\u306a\u308b\u306e\u3067\u3001\u6700\u521d\u306e\u884c\u306b\u95a2\u3057\u3066\u306f\u3053\u3061\u3089\u306f\u30b9\u30ad\u30c3\u30d7\u3055\u308c\u307e\u3059\u3002\u307e\u305a\u4e00\u756a\u6700\u521d\u306b\u884c\u308f\u308c\u308b\u30bb\u30eb\u306f\u5de6\u4e0a\u7aef\u306e\u30bb\u30eb\u3068\u306a\u308a\u3001\u96a3\u308a\u5408\u3046\u53f3\u306e\u30bb\u30eb\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<!-- notionvc: cb548fff-2e13-4f83-9c68-3215e117fd69 --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11648\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d4.png\" alt=\"\" width=\"411\" height=\"445\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d4.png 798w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d4-277x300.png 277w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d4-768x831.png 768w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><\/p>\n<p>cellCollapse\u95a2\u6570\u3067\u5b9f\u969b\u306bcell\u306e\u6298\u308a\u305f\u305f\u307f\u3092\u884c\u3046\u3053\u3068\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u53f3\u306e\u30bb\u30eb\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u5834\u5408\u3001grid[i + 1 + j * DIM]\u3067\u53f3\u5074\u306ecell\u3092\u53c2\u7167\u3057\u307e\u3059\u3002<\/p>\n<p>\u81ea\u5206\u81ea\u8eab\u306b\u5bfe\u3057\u3066\u53f3\u5074\u306a\u306e\u3067\u3001\u305d\u306e\u30bb\u30eb\u306f\u5de6\u5074\u306b\u30b3\u30cd\u30af\u30c8\u53ef\u80fd\u306a\u30bf\u30a4\u30eb\u3092\u691c\u8a3c\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 839746a4-f58b-4574-8ed6-d953bad54401 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">cellCollapse(grid[i + 1 + j * DIM], \"left\", sockets, tiles);\n...\n\nvoid cellCollapse(\n    Cell cell, String direction, List&lt;int&gt; sockets, List&lt;Tile&gt; tiles) {\n  List&lt;int&gt; validSockets = getValidSockets(cell, direction, tiles);\n  checkValid(sockets, validSockets);\n}<\/pre>\n<p>cellCollapse\u95a2\u6570\u3067\u884c\u3063\u3066\u3044\u308b\u3053\u3068\u306f\u3001getValidSockets\u3067\u30b3\u30cd\u30af\u30c8sockets\uff08\u30b3\u30cd\u30af\u30c8\u53ef\u80fd\u306a\u30bf\u30a4\u30eb\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\uff09\u3092\u53d6\u5f97\u3057\u3001checkValid\u3067\u6bd4\u8f03\u3057\u5b58\u5728\u3057\u306a\u3051\u308c\u3070\u5f15\u6570\u3067\u6e21\u3055\u308c\u305fsockets\u306eindex\u306f\u524a\u9664\u3002\u3068\u306a\u308a\u307e\u3059\u3002<!-- notionvc: 6c440512-8e54-41ae-a302-1c4570298c5d --><\/p>\n<p>\u00a0<\/p>\n<p><span class=\"notion-enable-hover\" data-token-index=\"0\">getValidSockets\u95a2\u6570<\/span><!-- notionvc: 7a68c246-4ee5-48db-98d8-375118994f0e --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">List&lt;int&gt; getValidSockets(Cell cell, String direction, List&lt;Tile&gt; tiles) {\n  List&lt;int&gt; validSockets = [];\n  for (int socket in cell.sockets) {\n    List&lt;int&gt; valid = tiles[socket].valid(direction);\n    validSockets.addAll(valid);\n  }\n  return validSockets;\n}<\/pre>\n<p>cell\u306f\u30c1\u30a7\u30c3\u30af\u5bfe\u8c61\uff08\u6d41\u308c\u7684\u306b \u6700\u521d\u306f\u53f3\u5074\uff09\u306e\u30bb\u30eb\u3068\u306a\u308a\u3001\u305d\u306e\u30bb\u30eb\u306e\u6301\u3064sockets\uff08\u30bf\u30a4\u30eb\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\uff09\u5206\u3001tile\u306evalid\u30e1\u30bd\u30c3\u30c9\u3067\u78ba\u8a8d\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u53f3\u5074\u306e\u30bb\u30eb\u306e\u5834\u5408\u306f \u201cleft\u201d\u3068\u306a\u308a\u3001tile\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u751f\u6210\u6642\u8a2d\u5b9a\u3057\u305fleft\u3001\u3064\u307e\u308a\u5de6\u5074\u306b\u30b3\u30cd\u30af\u30c8\u53ef\u80fd\u306a tile\u306eindex\u306e\u914d\u5217\u3092\u8fd4\u5374\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">List&lt;int&gt; valid(String direction) {\n  switch (direction) {\n    case 'up':\n      return up;\n    case 'right':\n      return right;\n    case 'down':\n      return down;\n    case 'left':\n      return left;\n    default:\n      return [];\n  }\n}<\/pre>\n<p>\u30c1\u30a7\u30c3\u30af\u5bfe\u8c61\u306ecell\u306esockets\uff08tile\uff09\u306e\u6570\u3060\u3051\u3001\u30b3\u30cd\u30af\u30c8\u53ef\u80fd\u306a tile\u306eindex\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<!-- notionvc: 11f6c319-78cd-4314-87d9-f9895a95530e --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">validSockets.addAll(valid);<\/pre>\n<p>\u6700\u5f8c\u306b\u3001checkValid\u3067\u5148\u7a0b\u4f5c\u6210\u3057\u305f\u30b3\u30cd\u30af\u30c8\u53ef\u80fd\u306atile\u306eindex\u5168\u3066\u304c\u8ffd\u52a0\u3055\u308c\u305fvalidSockets\u3068\u3001\u30c1\u30a7\u30c3\u30af\u6642\u306b\u4f5c\u6210\u3057\u305fsockets\u3092\u6bd4\u8f03\u3057\u3001\u5b58\u5728\u3057\u306a\u3051\u308c\u3070\u524a\u9664\u3057\u307e\u3059\u3002<!-- notionvc: f64ca5fa-3681-4c23-9549-259939640a50 --><\/p>\n<p><!-- notionvc: 377cf13a-18b4-469d-bbd0-3e40177678e6 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">void checkValid(List&lt;int&gt; sockets, List&lt;int&gt; validSockets) {\n  for (int i = sockets.length - 1; i &gt;= 0; i--) {\n    if (!validSockets.contains(sockets[i])) {\n      sockets.removeAt(i);\n    }\n  }\n}<\/pre>\n<p>\u3053\u3053\u3067\u3001\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306e\u6e1b\u5c11\u304c\u767a\u751f\u3057\u305f\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u4e0a\u4e0b\u5de6\u53f3\u30c1\u30a7\u30c3\u30af\u3057\u3001\u4e00\u3064\u3067\u3082\u7f6e\u3051\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308b\u306e\u3067\u3042\u308c\u3070\u5d29\u58ca\u3059\u308b\u3053\u3068\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 92ab1138-3c2f-478d-9a91-cb79001d514f -->\u203b \u4e00\u65b9\u304c\u300c2, 4\u300d\u3057\u304b\u30b3\u30cd\u30af\u30c8\u306e\u53ef\u80fd\u6027\u304c\u306a\u3044\u4f8b<!-- notionvc: a7156033-5e17-428b-8d6b-57a6c197181e --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11649\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d5.png\" alt=\"\" width=\"371\" height=\"299\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d5.png 507w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/wfc_d5-300x242.png 300w\" sizes=\"auto, (max-width: 371px) 100vw, 371px\" \/><\/p>\n<p>\u3053\u306e\u69d8\u306b\u3001\u81ea\u5206\u306e\u4e0a\u4e0b\u5de6\u53f3\u306e\u30bb\u30eb\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3001\u305d\u306e\u30bb\u30eb\u306e\u5f71\u97ff\u3067\u81ea\u5206\u81ea\u8eab\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304c\u6e1b\u5c11\u3057\u3001\u4f1d\u64ad\u3057\u3066\u3044\u304f\u3053\u3068\u304c\u6ce2\u52d5\u95a2\u6570\u306e\u5d29\u58ca\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u30b0\u30ea\u30c3\u30c9\u5168\u3066\u306e\u30bb\u30eb\u306e\u30c1\u30a7\u30c3\u30af\u304c\u7d42\u308f\u308b\u3068\u3001grid\u81ea\u4f53\u3092\u5d29\u58ca\u5f8c\u306e\u30b0\u30ea\u30c3\u30c9\u3092\u8fd4\u5374\u3057\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002<\/p>\n<p><!-- notionvc: 10473527-0a21-45b1-9fc6-5567c6d4ad88 --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">return nextGrid.where((cell) =&gt; cell != null).cast&lt;Cell&gt;().toList();<\/pre>\n<p>\u3053\u306e\u69d8\u306b\u3001waveCollapse\u95a2\u6570\u3067\u306f\u96a3\u308a\u5408\u3046\u30bb\u30eb\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3057\u3001\u30bb\u30eb\u306e\u6301\u3064sockets\u306e\u53ef\u80fd\u6027\u3092\u7d5e\u3063\u3066\u884c\u304f\u3053\u3068\u3067\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u6e1b\u5c11\u3055\u305b\u3066\u3001\u518d\u3073\u4f4e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u629e\u3057\u30bf\u30a4\u30eb\u3092\u78ba\u5b9a\u3002\u307e\u305fwaveCollapse\u95a2\u6570\u3067\u306f\u96a3\u308a\u5408\u3046\u30bb\u30eb\u306e\u30c1\u30a7\u30c3\u30af\u3002<\/p>\n<p>\u3068\u7e70\u308a\u8fd4\u3059\u3053\u3068\u3067\u3001\u5d29\u58ca\u306f\u4f1d\u64ad\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p><!-- notionvc: fce1bf7b-3294-4279-b6d9-6e0fc9c42e7f --><\/p>\n<h5>\u63cf\u753b<!-- notionvc: 038b68f1-9c30-4b96-9ad9-2f262fed3e9f --><\/h5>\n<p>\u6700\u5f8c\u306b\u63cf\u753b\u51e6\u7406\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>Flutter\u306eFlame\u306eadd()\u3067\u3001\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u3057\u3066\u8ffd\u52a0\u3082\u8a66\u3057\u305f\u306e\u3067\u3059\u304c\u3001\u3059\u3054\u304f\u91cd\u304b\u3063\u305f\u306e\u3067\u3001\uff08\u305d\u308a\u3083\u305d\u3046\u3060\uff09canvas\u306brender\u3059\u308b\u65b9\u6cd5\u3068\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>cell.collapsed\u306e\u72b6\u614b\u3092\u76e3\u8996\u3057\u63cf\u753b\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u632f\u308a\u5206\u3051\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dart\" data-enlighter-theme=\"monokai\">@override\nvoid render(Canvas canvas) {\n  final w = size.x \/ DIM;\n  final h = size.y \/ DIM;\n\n  for (int j = 0; j &lt; DIM; j++) {\n    for (int i = 0; i &lt; DIM; i++) {\n      Cell cell = grid[i + j * DIM];\n      if (cell.collapsed) {\n        int index = cell.sockets[0];\n        Tile tile = tiles[index];\n        tile.img.size = Vector2(w, h);\n        canvas.save();\n\n        double dx = i * w + w \/ 2;\n        double dy = j * h + h \/ 2;\n        canvas.translate(dx, dy);\n        canvas.rotate(tile.angle);\n        canvas.translate(-tile.img.size.x \/ 2, -tile.img.size.y \/ 2);\n        tile.img.render(canvas);\n        canvas.restore();\n      } else {\n        Rect rect = Rect.fromLTWH(i * w, j * h, w, h);\n        canvas.drawRect(rect, Paint()..color = Colors.white);\n      }\n    }\n  }\n}<\/pre>\n<p>\u305d\u308c\u3067\u306f\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11654\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/simple-989x1024.png\" alt=\"\" width=\"488\" height=\"506\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/simple-989x1024.png 989w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/simple-290x300.png 290w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/simple-768x795.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/simple.png 1428w\" sizes=\"auto, (max-width: 488px) 100vw, 488px\" \/><\/p>\n<p>\u306f\u3044\u3002<\/p>\n<p>\u3044\u3044\u611f\u3058\u306b\u3067\u304d\u307e\u3057\u305f\u306d\u3002<\/p>\n<p>\u305d\u306e\u4ed6\u306e\u30b5\u30f3\u30d7\u30eb\u3082\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11657\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circuit-984x1024.png\" alt=\"\" width=\"506\" height=\"526\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circuit-984x1024.png 984w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circuit-288x300.png 288w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circuit-768x799.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circuit.png 1392w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/p>\n<p>\u304a\u304a\u3002\u3044\u3044\u611f\u3058\u3067\u3059\u306d\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11658\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/floor_plan-989x1024.png\" alt=\"\" width=\"484\" height=\"501\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/floor_plan-989x1024.png 989w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/floor_plan-290x300.png 290w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/floor_plan-768x796.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/floor_plan.png 1396w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><\/p>\n<p>\u3053\u3061\u3089\u306f\u90e8\u5c4b\u306e\u56f3\u9762\u307d\u3044\u3067\u3059\u306d\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11659\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/castle-986x1024.png\" alt=\"\" width=\"479\" height=\"498\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/castle-986x1024.png 986w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/castle-289x300.png 289w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/castle-768x798.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/castle.png 1396w\" sizes=\"auto, (max-width: 479px) 100vw, 479px\" \/><\/p>\n<p>\u3044\u3044\u611f\u3058\u3067\u3059\u304c\u3001\u3061\u3087\u3063\u3068\u8abf\u6574\u304c\u5fc5\u8981\u305d\u3046\u3067\u3059\u306d\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11660\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circles-987x1024.png\" alt=\"\" width=\"490\" height=\"508\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circles-987x1024.png 987w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circles-289x300.png 289w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circles-768x797.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/circles.png 1396w\" sizes=\"auto, (max-width: 490px) 100vw, 490px\" \/><\/p>\n<p>\u3053\u308c\u306f\u3001\u3042\u3063\u3066\u3044\u308b\u306e\u304b\u3002\u9055\u3044\u307e\u3059\u3088\u306d\u3002<\/p>\n<p>\u00a0<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11661\" src=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/summer-1024x1020.png\" alt=\"\" width=\"455\" height=\"453\" srcset=\"https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/summer-1024x1020.png 1024w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/summer-300x300.png 300w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/summer-150x150.png 150w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/summer-768x765.png 768w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/summer-120x120.png 120w, https:\/\/www.webcyou.com\/wp-content\/uploads\/2023\/12\/summer.png 1174w\" sizes=\"auto, (max-width: 455px) 100vw, 455px\" \/><\/p>\n<p>RPG\u30de\u30c3\u30d7\u3082\u826f\u3044\u611f\u3058\u3067\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u8abf\u6574\u304c\u5fc5\u8981\u305d\u3046\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\u3068\u3001\u610f\u56f3\u3057\u305f\u901a\u308a\u306b\u8868\u793a\u3057\u305f\u306e\u3068\u3001\u3061\u3087\u3063\u3068\u9055\u304b\u3063\u305f\u306e\u3068\u3001\u5236\u7d04\u306e\u8abf\u6574\u304c\u5fc5\u8981\u305d\u3046\u306a\u3082\u306e\u3082\u3042\u308a\u307e\u3057\u305f\u304c\u3001\u53d6\u308a\u6562\u3048\u305a\u306f\u5b8c\u6210\u3002\u5236\u7d04\u306e\u4ed8\u3051\u65b9\u3067\u8868\u793a\u3082\u7570\u3063\u3066\u304f\u308b\u306e\u3082\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\u4eca\u56de\u4f5c\u6210\u3057\u305f\u30bd\u30fc\u30b9\u306f\u3053\u3061\u3089\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/flame-games\/wave-function-collapse\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/flame-games\/wave-function-collapse<\/a><\/p>\n<p>\u5b9f\u306f\u3001Rust\u7248\u3082\u4f5c\u6210\u3057\u305f\u306e\u3067\u3059\u304c\u3001\u3053\u3063\u3061\u306e\u65b9\u304c\uff08\u5f53\u305f\u308a\u524d\u3067\u3059\u304c\uff09\u7206\u901f\u3067\u3059\u306d\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/webcyou-org\/wave-function-collapse-rust\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/webcyou-org\/wave-function-collapse-rust<\/a><\/p>\n<p>\u3053\u3061\u3089\u306b\u95a2\u3057\u3066\u3082\u3001\u6b21\u56de\u8aac\u660e\u3067\u304d\u308c\u3070\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\uff085\u520612\u79d2\u7d4c\u904e\uff09<\/p>\n<p><!-- notionvc: ad64aab8-c4d5-4fcb-ba98-2d2eac2312ea --><\/p>\n<h4>\u6700\u5f8c\u306b<!-- notionvc: e1d0861e-d8e0-4d2e-af38-a8b7b4d22fc5 --><\/h4>\n<p>\u3068\u3044\u3046\u8a33\u3067\u3001\u4eca\u56de\u306fWave Function Collapse &#8211; \u6ce2\u52d5\u95a2\u6570\u5d29\u58ca\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306eTile Model\u3092\u5b9f\u88c5\u3057\u3066\u307f\u307e\u3057\u305f\u3002<!-- notionvc: 3f40c915-67ea-40a4-801b-481eb889fe01 --><\/p>\n<p>5\u5206\u3092\u5927\u5e45\u306b\u904e\u304e\u3066\u3057\u307e\u3046\u3093\u3058\u3083\u306a\u3044\u304b\u3068\u601d\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u30015\u520612\u79d2\u3068\u306a\u3093\u3068\u304b5\u5206\u4ee3\u306b\u53ce\u3081\u3089\u308c\u3066\u826f\u304b\u3063\u305f\u3067\u3059\u3002<!-- notionvc: f598dcab-a2fc-4182-822f-d2b8c8787da8 --><\/p>\n<p>\u3053\u306e\u51ac\u4f11\u307f\u306f\u3001<span class=\"notion-enable-hover\" data-token-index=\"0\">Overlapping Model\u3082\u542b\u3081<\/span>\u30c8\u30e9\u30a4\u3057\u3066\u307f\u3066\u306f\u3044\u304b\u304c\u3067\u3057\u3087\u3046\u304b\u3002<\/p>\n<p>\u00a0<\/p>\n<p>\u6765\u5e74\u3053\u305d\u306f\u3001\u4f5c\u308d\u3046\u3068\u601d\u3063\u3066\u3044\u305f\u30a2\u30d7\u30ea\u3068\u30013D\u30dc\u30af\u30bb\u30eb\u30b2\u30fc\u30e0\u30a8\u30f3\u30b8\u30f3\u306e\u4f5c\u6210\u3092\u884c\u3044\u305f\u3044\u3068\u601d\u3063\u3066\u304a\u308a\u307e\u3059\u3002<\/p>\n<p>\u6700\u8fd1\u8a18\u4e8b\u66f8\u304f\u6642\u9593\u3082\u53d6\u308c\u306a\u304f\u306a\u3063\u3066\u6765\u305f\u306e\u3067\u3001Dev log\u7684\u306a\u5f62\u3067\u6295\u7a3f\u3067\u304d\u308c\u3070\u3068\u601d\u3063\u3066\u304a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3067\u306f\u3067\u306f\u3041\u3002<\/p>\n<p><!-- notionvc: b8e57368-d1b4-4597-b270-cb03679b4eee --><\/p>\n<p><!-- notionvc: 58e7764e-ee84-4f57-a091-cd7d292312e3 --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3069\u3082\u3067\u3059\u3002 \u306a\u3001\u4f55\u30f6\u6708\u3076\u308a\u304b\u3002\u3002 \u3044\u3064\u306e\u9593\u306b\u304b\u306b\u6642\u9593\u3082\u904e\u304e\u3001\u6c17\u304c\u3064\u3051\u3070\u5e74\u672b\u3002\u672c\u5f53\u306b\u6642\u9593\u304c\u7d4c\u3064\u306e\u304c\u65e9\u3044\u3067\u3059\u3088\u306d\u3002\u3002 \u632f\u308a\u8fd4\u308c\u3070\u3001\u524d\u534a\u306fDart\u3001Flutter\u3001Flame\u3001\u5f8c\u534a\u306f\u696d\u52d9\u3067\u3082\u304c\u3063\u3064\u308aRust\u3068\u3002 \u8272\u3005\u3068\u5909\u5316\u3082\u3042 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11652,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[195],"tags":[176,166,37,47,312,45,311,109,78,118,313],"class_list":["post-11623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aibotalgorithm","tag-html5","tag-iphone","tag-iphone-","tag-javascript-2","tag-wave-function-collapse","tag-web","tag-311","tag-109","tag-78","tag-118","tag-313"],"_links":{"self":[{"href":"https:\/\/www.webcyou.com\/index.php?rest_route=\/wp\/v2\/posts\/11623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcyou.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcyou.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcyou.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcyou.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11623"}],"version-history":[{"count":9,"href":"https:\/\/www.webcyou.com\/index.php?rest_route=\/wp\/v2\/posts\/11623\/revisions"}],"predecessor-version":[{"id":11664,"href":"https:\/\/www.webcyou.com\/index.php?rest_route=\/wp\/v2\/posts\/11623\/revisions\/11664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcyou.com\/index.php?rest_route=\/wp\/v2\/media\/11652"}],"wp:attachment":[{"href":"https:\/\/www.webcyou.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcyou.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcyou.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}