{"id":9111,"date":"2025-12-03T16:00:46","date_gmt":"2025-12-03T07:00:46","guid":{"rendered":"https:\/\/rakkokeyword.com\/techo\/?p=9111"},"modified":"2025-12-03T16:00:47","modified_gmt":"2025-12-03T07:00:47","slug":"tool-web-dice","status":"publish","type":"post","link":"https:\/\/rakkokeyword.com\/techo\/tool-web-dice\/","title":{"rendered":"\u30b5\u30a4\u30b3\u30ed\u30c4\u30fc\u30eb"},"content":{"rendered":"\n<div id=\"websaiko-container\">\n  <style>\n    #websaiko-container {\n      width: 100%;\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n      color: #333;\n      line-height: 1.6;\n    }\n    #websaiko-container * {\n      box-sizing: border-box;\n    }\n    .websaiko-mode-tabs {\n      display: flex;\n      gap: 8px;\n      margin-bottom: 20px;\n      flex-wrap: wrap;\n    }\n    .websaiko-mode-tab {\n      flex: 1;\n      min-width: 80px;\n      padding: 10px 16px;\n      background: #f5f5f5;\n      border: 1px solid #ddd;\n      cursor: pointer;\n      text-align: center;\n      font-size: 14px;\n      transition: all 0.2s;\n    }\n    .websaiko-mode-tab:hover {\n      background: #e8e8e8;\n    }\n    .websaiko-mode-tab:focus {\n      outline: 2px solid #007cba;\n      outline-offset: 2px;\n    }\n    .websaiko-mode-tab.active {\n      background: #007cba;\n      color: white;\n      border-color: #007cba;\n      font-weight: 600;\n    }\n    .websaiko-settings {\n      background: #fafafa;\n      padding: 20px;\n      margin-bottom: 20px;\n    }\n    .websaiko-setting-row {\n      margin-bottom: 16px;\n    }\n    .websaiko-setting-row:last-child {\n      margin-bottom: 0;\n    }\n    .websaiko-label {\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      margin-bottom: 8px;\n      color: #555;\n    }\n    .websaiko-input,\n    .websaiko-select {\n      width: 100%;\n      padding: 10px 12px;\n      font-size: 16px;\n      border: 1px solid #ddd;\n      background: white;\n      transition: border-color 0.2s;\n    }\n    .websaiko-input:focus,\n    .websaiko-select:focus {\n      outline: none;\n      border-color: #007cba;\n      box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.1);\n    }\n    .websaiko-input.error {\n      border-color: #d32f2f;\n    }\n    .websaiko-quick-buttons {\n      display: flex;\n      gap: 8px;\n      flex-wrap: wrap;\n    }\n    .websaiko-quick-btn {\n      flex: 1;\n      min-width: 60px;\n      padding: 12px;\n      background: white;\n      border: 2px solid #007cba;\n      color: #007cba;\n      font-size: 16px;\n      font-weight: 600;\n      cursor: pointer;\n      transition: all 0.2s;\n    }\n    .websaiko-quick-btn:hover {\n      background: #007cba;\n      color: white;\n    }\n    .websaiko-quick-btn:focus {\n      outline: 2px solid #007cba;\n      outline-offset: 2px;\n    }\n    .websaiko-main-button {\n      width: 100%;\n      height: 50px;\n      background: #007cba;\n      color: white;\n      border: none;\n      font-size: 18px;\n      font-weight: 600;\n      cursor: pointer;\n      margin-bottom: 20px;\n      transition: all 0.2s;\n    }\n    .websaiko-main-button:hover {\n      background: #005a87;\n    }\n    .websaiko-main-button:focus {\n      outline: 2px solid #007cba;\n      outline-offset: 2px;\n    }\n    .websaiko-main-button:disabled {\n      opacity: 0.5;\n      cursor: not-allowed;\n    }\n    .websaiko-sound-toggle {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      font-size: 14px;\n    }\n    .websaiko-switch {\n      position: relative;\n      width: 50px;\n      height: 26px;\n      background: #ccc;\n      cursor: pointer;\n      transition: background 0.3s;\n    }\n    .websaiko-switch:focus {\n      outline: 2px solid #007cba;\n      outline-offset: 2px;\n    }\n    .websaiko-switch.on {\n      background: #007cba;\n    }\n    .websaiko-switch-knob {\n      position: absolute;\n      top: 3px;\n      left: 3px;\n      width: 20px;\n      height: 20px;\n      background: white;\n      transition: left 0.3s;\n    }\n    .websaiko-switch.on .websaiko-switch-knob {\n      left: 27px;\n    }\n    .websaiko-display-area {\n      background: #f9f9f9;\n      padding: 30px 20px;\n      margin-bottom: 20px;\n      text-align: center;\n      min-height: 280px;\n      display: flex;\n      flex-direction: column;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    .websaiko-dice-area {\n      width: 100%;\n      min-height: 120px;\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      margin-bottom: 20px;\n    }\n    .websaiko-result-area {\n      width: 100%;\n      min-height: 100px;\n      display: flex;\n      flex-direction: column;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    .websaiko-dice-container {\n      display: flex;\n      gap: 15px;\n      flex-wrap: wrap;\n      justify-content: center;\n      align-items: center;\n    }\n    @keyframes websaiko-fade-in {\n      to { opacity: 1; }\n    }\n    .websaiko-dice {\n      width: 60px;\n      height: 60px;\n      background: white;\n      border: 2px solid #333;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-size: 28px;\n      font-weight: 700;\n      position: relative;\n      transition: transform 0.1s;\n    }\n    .websaiko-dice.rolling {\n      animation: websaiko-pulse 0.1s ease-in-out infinite;\n    }\n    @keyframes websaiko-pulse {\n      0%, 100% { transform: scale(1); }\n      50% { transform: scale(1.05); }\n    }\n    .websaiko-chinchiro-bowl {\n      position: relative;\n      width: 220px;\n      height: 160px;\n      margin: 0 auto;\n    }\n    .websaiko-bowl-edge {\n      width: 100%;\n      height: 100%;\n      border: 4px solid #8B4513;\n      border-radius: 50% 50% 45% 45%;\n      background: linear-gradient(to bottom, #D2691E 0%, #8B4513 100%);\n      position: relative;\n    }\n    .websaiko-bowl-inside {\n      position: absolute;\n      top: 10px;\n      left: 10px;\n      right: 10px;\n      bottom: 0;\n      background: #F5DEB3;\n      border-radius: 50% 50% 45% 45%;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 10px;\n      padding: 20px;\n    }\n    .websaiko-chinchiro-dice {\n      width: 50px;\n      height: 50px;\n      background: white;\n      border: 2px solid #333;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-size: 24px;\n      font-weight: 700;\n      transition: transform 0.1s;\n    }\n    .websaiko-chinchiro-dice.rolling {\n      animation: websaiko-pulse 0.1s ease-in-out infinite;\n    }\n    .websaiko-result-main {\n      font-size: 32px;\n      font-weight: 700;\n      color: #007cba;\n      margin-bottom: 10px;\n    }\n    .websaiko-result-sub {\n      font-size: 18px;\n      color: #666;\n      margin-bottom: 10px;\n    }\n    .websaiko-result-yaku {\n      font-size: 24px;\n      font-weight: 600;\n      color: #d32f2f;\n      margin-bottom: 15px;\n      padding: 10px 20px;\n      background: #fff3cd;\n      border: 2px solid #d32f2f;\n      display: inline-block;\n    }\n    .websaiko-tips {\n      background: #e8f4f8;\n      padding: 15px;\n      margin-bottom: 20px;\n      font-size: 14px;\n      color: #555;\n      border-left: 4px solid #007cba;\n      min-height: 60px;\n    }\n    .websaiko-tips-title {\n      font-weight: 600;\n      margin-bottom: 5px;\n    }\n    .websaiko-tips-content {\n      min-height: 20px;\n    }\n    .websaiko-mahjong-position {\n      margin-top: 15px;\n      padding: 15px;\n      background: white;\n      border: 2px solid #007cba;\n      text-align: center;\n    }\n    .websaiko-mahjong-position-label {\n      font-size: 14px;\n      color: #666;\n      margin-bottom: 5px;\n    }\n    .websaiko-mahjong-position-value {\n      font-size: 24px;\n      font-weight: 700;\n      color: #007cba;\n    }\n    .websaiko-history {\n      background: #f5f5f5;\n      padding: 15px;\n      margin-bottom: 20px;\n    }\n    .websaiko-history-title {\n      font-size: 14px;\n      font-weight: 600;\n      margin-bottom: 10px;\n      color: #555;\n    }\n    .websaiko-history-list {\n      list-style: none;\n      padding: 0;\n      margin: 0;\n    }\n    .websaiko-history-item {\n      padding: 8px 0;\n      border-bottom: 1px solid #ddd;\n      font-size: 14px;\n      color: #666;\n    }\n    .websaiko-history-item:last-child {\n      border-bottom: none;\n    }\n    .websaiko-actions {\n      display: flex;\n      gap: 10px;\n      margin-bottom: 20px;\n    }\n    .websaiko-action-btn {\n      flex: 1;\n      padding: 12px;\n      min-height: 44px;\n      background: white;\n      border: 2px solid #007cba;\n      color: #007cba;\n      font-size: 14px;\n      font-weight: 600;\n      cursor: pointer;\n      transition: all 0.2s;\n    }\n    .websaiko-action-btn:hover {\n      background: #007cba;\n      color: white;\n    }\n    .websaiko-action-btn:focus {\n      outline: 2px solid #007cba;\n      outline-offset: 2px;\n    }\n    .websaiko-error-message {\n      background: #ffebee;\n      color: #c62828;\n      padding: 10px 15px;\n      margin-bottom: 15px;\n      border-left: 4px solid #c62828;\n      font-size: 14px;\n      display: none;\n    }\n    .websaiko-error-message.show {\n      display: block;\n      animation: websaiko-fade-in 0.3s ease-out;\n    }\n    .websaiko-hidden {\n      display: none;\n    }\n    .websaiko-initial-message {\n      color: #999;\n      font-size: 16px;\n    }\n    .websaiko-seo-content {\n      background: #f9f9f9;\n      padding: 20px;\n      margin-top: 30px;\n      font-size: 14px;\n      line-height: 1.8;\n      color: #555;\n    }\n    .websaiko-seo-content p {\n      margin: 0 0 15px 0;\n      font-size: 14px;\n      font-weight: normal;\n      color: #555;\n    }\n    .websaiko-seo-content p:last-child {\n      margin-bottom: 0;\n    }\n    .websaiko-seo-title {\n      font-size: 16px;\n      font-weight: 700;\n      margin-bottom: 10px;\n      color: #333;\n    }\n    @media (max-width: 600px) {\n      .websaiko-mode-tabs {\n        flex-direction: column;\n      }\n      .websaiko-mode-tab {\n        flex: none;\n        width: 100%;\n      }\n      .websaiko-dice {\n        width: 50px;\n        height: 50px;\n        font-size: 24px;\n      }\n      .websaiko-result-main {\n        font-size: 28px;\n      }\n      .websaiko-result-sub {\n        font-size: 16px;\n      }\n      .websaiko-chinchiro-bowl {\n        width: 180px;\n        height: 130px;\n      }\n      .websaiko-chinchiro-dice {\n        width: 40px;\n        height: 40px;\n        font-size: 20px;\n      }\n      .websaiko-dice-area {\n        min-height: 100px;\n      }\n      .websaiko-result-area {\n        min-height: 80px;\n      }\n    }\n  <\/style>\n\n  <!-- \u30e2\u30fc\u30c9\u9078\u629e\u30bf\u30d6 -->\n  <div class=\"websaiko-mode-tabs\" role=\"tablist\">\n    <div class=\"websaiko-mode-tab active\" data-mode=\"normal\" role=\"tab\" tabindex=\"0\" aria-label=\"\u901a\u5e38\u30e2\u30fc\u30c9\">\u901a\u5e38\u30e2\u30fc\u30c9<\/div>\n    <div class=\"websaiko-mode-tab\" data-mode=\"chinchiro\" role=\"tab\" tabindex=\"0\" aria-label=\"\u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9\">\u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9<\/div>\n    <div class=\"websaiko-mode-tab\" data-mode=\"trpg\" role=\"tab\" tabindex=\"0\" aria-label=\"TRPG\u30e2\u30fc\u30c9\">TRPG\u30e2\u30fc\u30c9<\/div>\n    <div class=\"websaiko-mode-tab\" data-mode=\"mahjong\" role=\"tab\" tabindex=\"0\" aria-label=\"\u9ebb\u96c0\u30e2\u30fc\u30c9\">\u9ebb\u96c0\u30e2\u30fc\u30c9<\/div>\n  <\/div>\n\n  <!-- \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8 -->\n  <div id=\"websaiko-error\" class=\"websaiko-error-message\" role=\"alert\"><\/div>\n\n  <!-- \u8a2d\u5b9a\u30a8\u30ea\u30a2 -->\n  <div class=\"websaiko-settings\">\n    <!-- \u901a\u5e38\u30e2\u30fc\u30c9\u8a2d\u5b9a -->\n    <div id=\"websaiko-normal-settings\">\n      <div class=\"websaiko-setting-row\">\n        <label class=\"websaiko-label\" for=\"websaiko-count\">\u30b5\u30a4\u30b3\u30ed\u306e\u500b\u6570\uff081\u301c50\uff09<\/label>\n        <input type=\"number\" id=\"websaiko-count\" class=\"websaiko-input\" min=\"1\" max=\"50\" value=\"2\" aria-label=\"\u30b5\u30a4\u30b3\u30ed\u306e\u500b\u6570\u3092\u5165\u529b\">\n      <\/div>\n      <div class=\"websaiko-setting-row\">\n        <label class=\"websaiko-label\" for=\"websaiko-faces\">\u30b5\u30a4\u30b3\u30ed\u306e\u9762\u6570\uff082\u301c9999\uff09<\/label>\n        <input type=\"number\" id=\"websaiko-faces\" class=\"websaiko-input\" min=\"2\" max=\"9999\" value=\"6\" aria-label=\"\u30b5\u30a4\u30b3\u30ed\u306e\u9762\u6570\u3092\u5165\u529b\">\n      <\/div>\n    <\/div>\n\n    <!-- TRPG\u30e2\u30fc\u30c9\u8a2d\u5b9a -->\n    <div id=\"websaiko-trpg-settings\" class=\"websaiko-hidden\">\n      <div class=\"websaiko-setting-row\">\n        <label class=\"websaiko-label\">\u3088\u304f\u4f7f\u3046\u30c0\u30a4\u30b9<\/label>\n        <div class=\"websaiko-quick-buttons\">\n          <button class=\"websaiko-quick-btn\" data-dice=\"1d4\" aria-label=\"1d4\u3092\u632f\u308b\">1d4<\/button>\n          <button class=\"websaiko-quick-btn\" data-dice=\"1d6\" aria-label=\"1d6\u3092\u632f\u308b\">1d6<\/button>\n          <button class=\"websaiko-quick-btn\" data-dice=\"1d10\" aria-label=\"1d10\u3092\u632f\u308b\">1d10<\/button>\n          <button class=\"websaiko-quick-btn\" data-dice=\"1d20\" aria-label=\"1d20\u3092\u632f\u308b\">1d20<\/button>\n          <button class=\"websaiko-quick-btn\" data-dice=\"1d100\" aria-label=\"1d100\u3092\u632f\u308b\">1d100<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"websaiko-setting-row\">\n        <label class=\"websaiko-label\">\u30ab\u30b9\u30bf\u30e0\u30c0\u30a4\u30b9<\/label>\n        <div style=\"display: flex; align-items: center; gap: 10px;\">\n          <input type=\"number\" id=\"websaiko-trpg-count\" class=\"websaiko-input\" min=\"1\" max=\"50\" value=\"1\" style=\"flex: 1;\" placeholder=\"\u500b\u6570\" aria-label=\"\u30c0\u30a4\u30b9\u306e\u500b\u6570\">\n          <span style=\"font-size: 20px; font-weight: 700; color: #333;\">d<\/span>\n          <input type=\"number\" id=\"websaiko-trpg-faces\" class=\"websaiko-input\" min=\"2\" max=\"9999\" value=\"6\" style=\"flex: 1;\" placeholder=\"\u9762\u6570\" aria-label=\"\u30c0\u30a4\u30b9\u306e\u9762\u6570\">\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u30c1\u30f3\u30c1\u30ed\u30fb\u9ebb\u96c0\u30e2\u30fc\u30c9\u8a2d\u5b9a -->\n    <div id=\"websaiko-fixed-settings\" class=\"websaiko-hidden\">\n      <p style=\"color: #666; font-size: 14px; margin: 0;\">\u3053\u306e\u30e2\u30fc\u30c9\u3067\u306f\u8a2d\u5b9a\u304c\u56fa\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059<\/p>\n    <\/div>\n\n    <div class=\"websaiko-setting-row\">\n      <!-- \u30b5\u30a6\u30f3\u30c9\u8a2d\u5b9a\u306f\u524a\u9664 -->\n    <\/div>\n  <\/div>\n\n  <!-- \u5b9f\u884c\u30dc\u30bf\u30f3 -->\n  <button class=\"websaiko-main-button\" id=\"websaiko-roll-btn\" aria-label=\"\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\">\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b<\/button>\n\n  <!-- \u7d50\u679c\u8868\u793a\u30a8\u30ea\u30a2 -->\n  <div class=\"websaiko-display-area\" id=\"websaiko-display\" role=\"region\" aria-live=\"polite\" aria-label=\"\u30b5\u30a4\u30b3\u30ed\u306e\u7d50\u679c\u8868\u793a\">\n    <div class=\"websaiko-dice-area\">\n      <p class=\"websaiko-initial-message\">\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u3063\u3066\u7d50\u679c\u3092\u8868\u793a\u3057\u307e\u3059<\/p>\n    <\/div>\n    <div class=\"websaiko-result-area\"><\/div>\n  <\/div>\n\n  <!-- \u78ba\u7387Tips -->\n  <div class=\"websaiko-tips\" id=\"websaiko-tips\" role=\"complementary\">\n    <div class=\"websaiko-tips-title\">\u78ba\u7387\u30e1\u30e2<\/div>\n    <div id=\"websaiko-tips-content\" class=\"websaiko-tips-content\"><\/div>\n  <\/div>\n\n  <!-- \u5c65\u6b74 -->\n  <div class=\"websaiko-history websaiko-hidden\" id=\"websaiko-history\" role=\"region\" aria-label=\"\u51fa\u76ee\u5c65\u6b74\">\n    <div class=\"websaiko-history-title\">\u51fa\u76ee\u5c65\u6b74\uff08\u6700\u65b010\u4ef6\uff09<\/div>\n    <ul class=\"websaiko-history-list\" id=\"websaiko-history-list\"><\/ul>\n  <\/div>\n\n  <!-- \u30a2\u30af\u30b7\u30e7\u30f3 -->\n  <div class=\"websaiko-actions websaiko-hidden\" id=\"websaiko-actions\">\n    <button class=\"websaiko-action-btn\" id=\"websaiko-copy-btn\" aria-label=\"\u7d50\u679c\u3092\u30b3\u30d4\u30fc\">\u7d50\u679c\u3092\u30b3\u30d4\u30fc<\/button>\n    <button class=\"websaiko-action-btn\" id=\"websaiko-share-btn\" aria-label=\"X\u3067\u30b7\u30a7\u30a2\">X\u3067\u30b7\u30a7\u30a2<\/button>\n  <\/div>\n\n  <!-- SEO\u7528\u30b3\u30f3\u30c6\u30f3\u30c4 -->\n  <div class=\"websaiko-seo-content\" id=\"websaiko-seo-normal\">\n    <p class=\"websaiko-seo-title\">\u30b5\u30a4\u30b3\u30ed\u306e\u78ba\u7387\u306b\u3064\u3044\u3066<\/p>\n    <p>\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\u3068\u304d\u3001\u51fa\u308b\u76ee\u306e\u78ba\u7387\u306f\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30b3\u30ed\u306e\u7a2e\u985e\u306b\u3088\u3063\u3066\u5909\u308f\u308a\u307e\u3059\u3002\u4e00\u822c\u7684\u306a6\u9762\u30b5\u30a4\u30b3\u30ed\u306e\u5834\u5408\u3001\u5404\u9762\u304c\u51fa\u308b\u78ba\u7387\u306f1\/6\uff08\u7d0416.7%\uff09\u3067\u7b49\u3057\u304f\u306a\u308a\u307e\u3059\u30022\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\u5834\u5408\u3001\u5408\u8a08\u304c7\u306b\u306a\u308b\u78ba\u7387\u304c\u6700\u3082\u9ad8\u304f\u3001\u7d0416.7%\uff086\/36\uff09\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u30017\u3092\u4f5c\u308b\u7d44\u307f\u5408\u308f\u305b\uff081+6\u30012+5\u30013+4\u30014+3\u30015+2\u30016+1\uff09\u304c6\u901a\u308a\u3042\u308b\u305f\u3081\u3067\u3059\u3002<\/p>\n    \n    <p class=\"websaiko-seo-title\">\u30b5\u30a4\u30b3\u30ed\u306e\u671f\u5f85\u5024\u3068\u5206\u6563<\/p>\n    <p>6\u9762\u30b5\u30a4\u30b3\u30ed1\u500b\u306e\u671f\u5f85\u5024\u306f3.5\u3067\u3059\u3002\u8907\u6570\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\u5834\u5408\u3001\u671f\u5f85\u5024\u306f\u500b\u6570\u5206\u306b\u6bd4\u4f8b\u3057\u307e\u3059\u3002\u4f8b\u3048\u30702\u500b\u306a\u30897\u30013\u500b\u306a\u308910.5\u304c\u671f\u5f85\u5024\u3068\u306a\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u30b5\u30a4\u30b3\u30ed\u306e\u76ee\u306e\u5206\u6563\u306f\u7d042.92\u3067\u3001\u6a19\u6e96\u504f\u5dee\u306f\u7d041.71\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u7d71\u8a08\u5024\u306f\u3001\u30b2\u30fc\u30e0\u306e\u6226\u7565\u3092\u8003\u3048\u308b\u4e0a\u3067\u91cd\u8981\u306a\u6307\u6a19\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n  <\/div>\n\n  <div class=\"websaiko-seo-content websaiko-hidden\" id=\"websaiko-seo-chinchiro\">\n    <p class=\"websaiko-seo-title\">\u30c1\u30f3\u30c1\u30ed\u306e\u30eb\u30fc\u30eb\u8aac\u660e<\/p>\n    <p>\u30c1\u30f3\u30c1\u30ed\u306f3\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u4f7f\u3063\u305f\u4f1d\u7d71\u7684\u306a\u65e5\u672c\u306e\u30b2\u30fc\u30e0\u3067\u3059\u3002\u30b5\u30a4\u30b3\u30ed\u3092\u4e3c\u306e\u4e2d\u3067\u632f\u308a\u3001\u51fa\u305f\u76ee\u306b\u3088\u3063\u3066\u52dd\u6557\u304c\u6c7a\u307e\u308a\u307e\u3059\u3002\u6700\u3082\u5f37\u3044\u5f79\u306f\u300c\u30b7\u30b4\u30ed\u300d\uff084-5-6\uff09\u3067\u3001\u6b21\u3044\u3067\u300c\u30be\u30ed\u76ee\u300d\u304c\u5f37\u304f\u3001\u7279\u306b\u300c\u30d4\u30f3\u30be\u30ed\u300d\uff081-1-1\uff09\u306f\u7279\u5225\u306a\u610f\u5473\u3092\u6301\u3061\u307e\u3059\u3002\u300c\u30d2\u30d5\u30df\u300d\uff081-2-3\uff09\u306f\u6700\u5f31\u306e\u5f79\u3068\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u30be\u30ed\u76ee\u4ee5\u5916\u30672\u3064\u304c\u540c\u3058\u5834\u5408\u306f\u300c\u76ee\u300d\u3068\u3057\u3066\u6271\u308f\u308c\u3001\u6b8b\u308a1\u3064\u306e\u6570\u5b57\u304c\u5f97\u70b9\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n    \n    <p class=\"websaiko-seo-title\">\u30c1\u30f3\u30c1\u30ed\u306e\u5f79\u4e00\u89a7\u3068\u78ba\u7387<\/p>\n    <p>\u30b7\u30b4\u30ed\uff084-5-6\uff09\uff1a\u7d040.46%\uff081\/216\uff09\u3001\u30d4\u30f3\u30be\u30ed\uff081-1-1\uff09\uff1a\u7d040.46%\uff081\/216\uff09\u3001\u305d\u306e\u4ed6\u306e\u30be\u30ed\u76ee\uff082-2-2\u301c6-6-6\uff09\uff1a\u5404\u7d040.46%\u3001\u30d2\u30d5\u30df\uff081-2-3\uff09\uff1a\u7d040.46%\uff081\/216\uff09\u3001\u76ee\uff082\u3064\u304c\u540c\u3058\uff09\uff1a\u7d0450%\u3001\u76ee\u306a\u3057\uff1a\u7d0444.4%\u3002\u30be\u30ed\u76ee\u306f\u5168\u4f53\u3067\u7d042.78%\u306e\u78ba\u7387\u3067\u51fa\u73fe\u3057\u307e\u3059\u3002\u30c1\u30f3\u30c1\u30ed\u3067\u306f\u78ba\u7387\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u6226\u7565\u7684\u306a\u30d7\u30ec\u30a4\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n  <\/div>\n\n  <div class=\"websaiko-seo-content websaiko-hidden\" id=\"websaiko-seo-trpg\">\n    <p class=\"websaiko-seo-title\">TRPG\u3067\u3088\u304f\u4f7f\u3046\u30c0\u30a4\u30b9\u306e\u7a2e\u985e<\/p>\n    <p>\u30c6\u30fc\u30d6\u30eb\u30c8\u30fc\u30afRPG\uff08TRPG\uff09\u3067\u306f\u69d8\u3005\u306a\u591a\u9762\u4f53\u30c0\u30a4\u30b9\u304c\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u6700\u3082\u57fa\u672c\u7684\u306a\u306e\u306f6\u9762\u30c0\u30a4\u30b9\uff08d6\uff09\u3067\u30014\u9762\u4f53\uff08d4\uff09\u30018\u9762\u4f53\uff08d8\uff09\u300110\u9762\u4f53\uff08d10\uff09\u300112\u9762\u4f53\uff08d12\uff09\u300120\u9762\u4f53\uff08d20\uff09\u3001100\u9762\u4f53\uff08d100\u307e\u305f\u306f\u30d1\u30fc\u30bb\u30f3\u30bf\u30a4\u30eb\u30c0\u30a4\u30b9\uff09\u306a\u3069\u304c\u4e00\u822c\u7684\u3067\u3059\u3002\u300c3d6\u300d\u306e\u3088\u3046\u306a\u8868\u8a18\u306f\u300c6\u9762\u30c0\u30a4\u30b9\u30923\u500b\u632f\u308b\u300d\u3068\u3044\u3046\u610f\u5473\u3067\u3001TRPG\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u3068\u3063\u3066\u6a19\u6e96\u7684\u306a\u8868\u73fe\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n    \n    <p class=\"websaiko-seo-title\">d20\u30b7\u30b9\u30c6\u30e0\u3068\u30af\u30ea\u30c6\u30a3\u30ab\u30eb<\/p>\n    <p>d20\u306f\u7279\u306b\u300cDungeons &amp; Dragons\u300d\u306a\u3069\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u4e2d\u5fc3\u7684\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u307e\u3059\u300220\u304c\u51fa\u308c\u3070\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\u30d2\u30c3\u30c8\uff08\u81ea\u52d5\u6210\u529f\uff09\u30011\u304c\u51fa\u308c\u3070\u30d5\u30a1\u30f3\u30d6\u30eb\uff08\u81ea\u52d5\u5931\u6557\uff09\u3068\u3044\u3063\u305f\u7279\u5225\u306a\u7d50\u679c\u3092\u751f\u307f\u51fa\u3057\u307e\u3059\u3002d20\u306e\u5404\u9762\u304c\u51fa\u308b\u78ba\u7387\u306f5%\u3067\u3001\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\u30d2\u30c3\u30c8\u3084\u30d5\u30a1\u30f3\u30d6\u30eb\u306e\u78ba\u7387\u3082\u540c\u3058\u304f5%\u3067\u3059\u3002\u3053\u306e\u78ba\u7387\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u30ea\u30b9\u30af\u3068\u30ea\u30bf\u30fc\u30f3\u3092\u8a08\u7b97\u3057\u305f\u6226\u7565\u7684\u306a\u30d7\u30ec\u30a4\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n  <\/div>\n\n  <div class=\"websaiko-seo-content websaiko-hidden\" id=\"websaiko-seo-mahjong\">\n    <p class=\"websaiko-seo-title\">\u9ebb\u96c0\u306e\u30b5\u30a4\u30b3\u30ed\u3068\u8d77\u5bb6\uff08\u30c1\u30fc\u30c1\u30e3\uff09<\/p>\n    <p>\u9ebb\u96c0\u3067\u306f2\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u4f7f\u3063\u3066\u914d\u724c\u3092\u59cb\u3081\u308b\u4f4d\u7f6e\u3092\u6c7a\u3081\u307e\u3059\u3002\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u3063\u305f\u4eba\u3092\u57fa\u6e96\u306b\u3001\u51fa\u305f\u76ee\u306e\u5408\u8a08\u3067\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u6c7a\u307e\u308a\u307e\u3059\uff1a<strong>1\u30fb5\u30fb9\u306e\u5834\u5408\u306f\u8d77\u5bb6\uff08\u81ea\u5206\uff09<\/strong>\u3001<strong>2\u30fb6\u30fb10\u306e\u5834\u5408\u306f\u4e0b\u5bb6\uff08\u30b7\u30e2\u30c1\u30e3\uff09<\/strong>\u3001<strong>3\u30fb7\u30fb11\u306e\u5834\u5408\u306f\u5bfe\u9762\uff08\u30c8\u30a4\u30e1\u30f3\uff09<\/strong>\u3001<strong>4\u30fb8\u30fb12\u306e\u5834\u5408\u306f\u4e0a\u5bb6\uff08\u30ab\u30df\u30c1\u30e3\uff09<\/strong>\u3068\u306a\u308a\u307e\u3059\u3002\u4f8b\u3048\u3070\u30017\u304c\u51fa\u305f\u5834\u5408\u306f\u5bfe\u9762\u304b\u3089\u914d\u724c\u3092\u53d6\u308a\u59cb\u3081\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n    \n    <p class=\"websaiko-seo-title\">\u9ebb\u96c0\u30b5\u30a4\u30b3\u30ed\u306e\u78ba\u7387\u5206\u5e03<\/p>\n    <p>2\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u3067\u51fa\u308b\u5408\u8a08\u306f2\u301c12\u306e\u7bc4\u56f2\u3067\u3001\u6700\u3082\u51fa\u3084\u3059\u3044\u306e\u306f7\uff08\u78ba\u7387\u7d0416.7%\uff09\u3067\u3059\u3002\u9006\u306b2\u306812\u304c\u51fa\u308b\u78ba\u7387\u306f\u6700\u3082\u4f4e\u304f\u3001\u305d\u308c\u305e\u308c\u7d042.78%\uff081\/36\uff09\u3068\u306a\u308a\u307e\u3059\u3002\u5408\u8a087\u304c\u51fa\u308b\u78ba\u7387\u304c\u6700\u3082\u9ad8\u3044\u7406\u7531\u306f\u3001\u7d44\u307f\u5408\u308f\u305b\u304c6\u901a\u308a\uff081+6\u30012+5\u30013+4\u30014+3\u30015+2\u30016+1\uff09\u3042\u308b\u305f\u3081\u3067\u3059\u3002\u4e00\u65b9\u30016\u30688\u3082\u6bd4\u8f03\u7684\u51fa\u3084\u3059\u304f\u3001\u305d\u308c\u305e\u308c5\u901a\u308a\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u7d0413.9%\u306e\u78ba\u7387\u3067\u3059\u3002\u3053\u306e\u78ba\u7387\u5206\u5e03\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u9ebb\u96c0\u306e\u914d\u724c\u4f4d\u7f6e\u306e\u504f\u308a\u3092\u628a\u63e1\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n  <\/div>\n\n  <script>\n    (function() {\n      'use strict';\n\n      if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initWebSaiko);\n      } else {\n        initWebSaiko();\n      }\n\n      function initWebSaiko() {\n        \/\/ \u72b6\u614b\u7ba1\u7406\n        const state = {\n          mode: 'normal',\n          lastResult: null,\n          history: [],\n          isRolling: false,\n          lastRollTime: 0\n        };\n\n        \/\/ DOM\u8981\u7d20\n        const elements = {\n          tabs: document.querySelectorAll('.websaiko-mode-tab'),\n          errorMsg: document.getElementById('websaiko-error'),\n          normalSettings: document.getElementById('websaiko-normal-settings'),\n          trpgSettings: document.getElementById('websaiko-trpg-settings'),\n          fixedSettings: document.getElementById('websaiko-fixed-settings'),\n          countInput: document.getElementById('websaiko-count'),\n          facesInput: document.getElementById('websaiko-faces'),\n          trpgCountInput: document.getElementById('websaiko-trpg-count'),\n          trpgFacesInput: document.getElementById('websaiko-trpg-faces'),\n          rollBtn: document.getElementById('websaiko-roll-btn'),\n          display: document.getElementById('websaiko-display'),\n          tips: document.getElementById('websaiko-tips'),\n          tipsContent: document.getElementById('websaiko-tips-content'),\n          history: document.getElementById('websaiko-history'),\n          historyList: document.getElementById('websaiko-history-list'),\n          actions: document.getElementById('websaiko-actions'),\n          copyBtn: document.getElementById('websaiko-copy-btn'),\n          shareBtn: document.getElementById('websaiko-share-btn')\n        };\n\n        \/\/ localStorage \u304b\u3089\u5c65\u6b74\u3092\u8aad\u307f\u8fbc\u307f\n        loadHistory();\n\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc\u8a2d\u5b9a\n        setupEventListeners();\n\n        \/\/ \u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc\u8a2d\u5b9a\u95a2\u6570\n        function setupEventListeners() {\n          \/\/ \u30bf\u30d6\u5207\u308a\u66ff\u3048\n          elements.tabs.forEach(tab => {\n            tab.addEventListener('click', () => switchMode(tab.dataset.mode));\n            tab.addEventListener('keydown', (e) => {\n              if (e.key === 'Enter' || e.key === ' ') {\n                e.preventDefault();\n                switchMode(tab.dataset.mode);\n              }\n            });\n          });\n\n          \/\/ \u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\u30dc\u30bf\u30f3\n          elements.rollBtn.addEventListener('click', rollDice);\n\n          \/\/ TRPG\u30af\u30a4\u30c3\u30af\u30dc\u30bf\u30f3\n          document.querySelectorAll('.websaiko-quick-btn').forEach(btn => {\n            btn.addEventListener('click', (e) => {\n              e.preventDefault();\n              const match = btn.dataset.dice.match(\/^(\\d+)d(\\d+)$\/i);\n              if (match) {\n                elements.trpgCountInput.value = match[1];\n                elements.trpgFacesInput.value = match[2];\n                rollDice();\n              }\n            });\n          });\n\n          \/\/ \u30a2\u30af\u30b7\u30e7\u30f3\u30dc\u30bf\u30f3\n          elements.copyBtn.addEventListener('click', copyResult);\n          elements.shareBtn.addEventListener('click', shareResult);\n\n          \/\/ \u30ad\u30fc\u30dc\u30fc\u30c9\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\n          document.addEventListener('keydown', handleKeydown);\n\n          \/\/ \u30b7\u30a7\u30a4\u30af\u691c\u51fa\uff08\u30e2\u30d0\u30a4\u30eb\uff09\n          setupShakeDetection();\n        }\n\n        \/\/ \u30ad\u30fc\u30dc\u30fc\u30c9\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\n        function handleKeydown(e) {\n          if ((e.key === 'Enter' || e.key === ' ') && !e.repeat) {\n            const activeElement = document.activeElement;\n            const isInput = activeElement.tagName === 'INPUT' || \n                           activeElement.tagName === 'SELECT' || \n                           activeElement.tagName === 'BUTTON';\n            if (!isInput) {\n              e.preventDefault();\n              rollDice();\n            }\n          }\n        }\n\n        \/\/ \u30b7\u30a7\u30a4\u30af\u691c\u51fa\u8a2d\u5b9a\n        function setupShakeDetection() {\n          if (window.DeviceMotionEvent) {\n            let lastShake = 0;\n            window.addEventListener('devicemotion', (e) => {\n              const acc = e.accelerationIncludingGravity;\n              if (!acc) return;\n              \n              const total = Math.abs(acc.x) + Math.abs(acc.y) + Math.abs(acc.z);\n              if (total > 40 && Date.now() - lastShake > 1000) {\n                lastShake = Date.now();\n                rollDice();\n              }\n            });\n          }\n        }\n\n        \/\/ \u30e2\u30fc\u30c9\u5207\u308a\u66ff\u3048\n        function switchMode(mode) {\n          state.mode = mode;\n          \n          \/\/ \u30bf\u30d6\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u5207\u308a\u66ff\u3048\n          elements.tabs.forEach(tab => {\n            const isActive = tab.dataset.mode === mode;\n            if (isActive) {\n              tab.classList.add('active');\n              tab.setAttribute('aria-selected', 'true');\n            } else {\n              tab.classList.remove('active');\n              tab.setAttribute('aria-selected', 'false');\n            }\n          });\n\n          \/\/ \u8a2d\u5b9a\u30a8\u30ea\u30a2\u306e\u8868\u793a\u5207\u308a\u66ff\u3048\n          elements.normalSettings.classList.add('websaiko-hidden');\n          elements.trpgSettings.classList.add('websaiko-hidden');\n          elements.fixedSettings.classList.add('websaiko-hidden');\n\n          \/\/ SEO\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u8868\u793a\u5207\u308a\u66ff\u3048\n          document.getElementById('websaiko-seo-normal').classList.add('websaiko-hidden');\n          document.getElementById('websaiko-seo-chinchiro').classList.add('websaiko-hidden');\n          document.getElementById('websaiko-seo-trpg').classList.add('websaiko-hidden');\n          document.getElementById('websaiko-seo-mahjong').classList.add('websaiko-hidden');\n\n          switch (mode) {\n            case 'normal':\n              elements.normalSettings.classList.remove('websaiko-hidden');\n              elements.rollBtn.textContent = '\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b';\n              document.getElementById('websaiko-seo-normal').classList.remove('websaiko-hidden');\n              break;\n            case 'chinchiro':\n              elements.fixedSettings.classList.remove('websaiko-hidden');\n              elements.rollBtn.textContent = '\u30c1\u30f3\u30c1\u30ed\u3059\u308b';\n              document.getElementById('websaiko-seo-chinchiro').classList.remove('websaiko-hidden');\n              break;\n            case 'trpg':\n              elements.trpgSettings.classList.remove('websaiko-hidden');\n              elements.rollBtn.textContent = '\u30c0\u30a4\u30b9\u3092\u632f\u308b';\n              document.getElementById('websaiko-seo-trpg').classList.remove('websaiko-hidden');\n              break;\n            case 'mahjong':\n              elements.fixedSettings.classList.remove('websaiko-hidden');\n              elements.rollBtn.textContent = '\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b';\n              document.getElementById('websaiko-seo-mahjong').classList.remove('websaiko-hidden');\n              break;\n          }\n\n          \/\/ \u5c65\u6b74\u3068Tips\u3092\u30ea\u30bb\u30c3\u30c8\n          state.history = [];\n          state.lastResult = null;\n          saveHistory();\n          elements.history.classList.add('websaiko-hidden');\n          elements.tipsContent.textContent = ''; \/\/ Tips\u306f\u5e38\u306b\u8868\u793a\u3001\u5185\u5bb9\u3060\u3051\u30af\u30ea\u30a2\n          elements.actions.classList.add('websaiko-hidden');\n          elements.display.innerHTML = '<div class=\"websaiko-dice-area\"><p class=\"websaiko-initial-message\">\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u3063\u3066\u7d50\u679c\u3092\u8868\u793a\u3057\u307e\u3059<\/p><\/div><div class=\"websaiko-result-area\"><\/div>';\n          hideError();\n        }\n\n        \/\/ \u30a8\u30e9\u30fc\u8868\u793a\n        function showError(message) {\n          elements.errorMsg.textContent = message;\n          elements.errorMsg.classList.add('show');\n          setTimeout(() => {\n            hideError();\n          }, 5000);\n        }\n\n        \/\/ \u30a8\u30e9\u30fc\u975e\u8868\u793a\n        function hideError() {\n          elements.errorMsg.classList.remove('show');\n        }\n\n        \/\/ \u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\n        function rollDice() {\n          \/\/ \u30ec\u30fc\u30c8\u5236\u9650\uff08500ms\uff09\n          const now = Date.now();\n          if (now - state.lastRollTime < 500) {\n            return;\n          }\n          state.lastRollTime = now;\n\n          if (state.isRolling) return;\n\n          hideError();\n\n          let count, faces, diceStr;\n\n          if (state.mode === 'normal') {\n            count = parseInt(elements.countInput.value, 10);\n            faces = parseInt(elements.facesInput.value, 10);\n            \n            if (isNaN(count) || count < 1 || count > 50) {\n              showError('\u30b5\u30a4\u30b3\u30ed\u306e\u500b\u6570\u306f1\u301c50\u306e\u7bc4\u56f2\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044');\n              elements.countInput.classList.add('error');\n              elements.countInput.focus();\n              return;\n            }\n            if (isNaN(faces) || faces < 2 || faces > 9999) {\n              showError('\u30b5\u30a4\u30b3\u30ed\u306e\u9762\u6570\u306f2\u301c9999\u306e\u7bc4\u56f2\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044');\n              elements.facesInput.classList.add('error');\n              elements.facesInput.focus();\n              return;\n            }\n            elements.countInput.classList.remove('error');\n            elements.facesInput.classList.remove('error');\n          } else if (state.mode === 'chinchiro') {\n            count = 3;\n            faces = 6;\n          } else if (state.mode === 'mahjong') {\n            count = 2;\n            faces = 6;\n          } else if (state.mode === 'trpg') {\n            count = parseInt(elements.trpgCountInput.value, 10);\n            faces = parseInt(elements.trpgFacesInput.value, 10);\n            \n            if (isNaN(count) || count < 1 || count > 50) {\n              showError('\u30c0\u30a4\u30b9\u306e\u500b\u6570\u306f1\u301c50\u306e\u7bc4\u56f2\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044');\n              elements.trpgCountInput.classList.add('error');\n              elements.trpgCountInput.focus();\n              return;\n            }\n            if (isNaN(faces) || faces < 2 || faces > 9999) {\n              showError('\u9762\u6570\u306f2\u301c9999\u306e\u7bc4\u56f2\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044');\n              elements.trpgFacesInput.classList.add('error');\n              elements.trpgFacesInput.focus();\n              return;\n            }\n            elements.trpgCountInput.classList.remove('error');\n            elements.trpgFacesInput.classList.remove('error');\n            \n            diceStr = count + 'd' + faces;\n          }\n\n          performRoll(count, faces, diceStr);\n        }\n\n        \/\/ TRPG\u30c0\u30a4\u30b9\u3092\u632f\u308b\n        \/\/ \u30b5\u30a4\u30b3\u30ed\u5b9f\u884c\n        function performRoll(count, faces, diceStr) {\n          state.isRolling = true;\n          elements.rollBtn.disabled = true;\n\n          \/\/ \u6700\u7d42\u7684\u306a\u4e71\u6570\u751f\u6210\n          const finalResults = [];\n          for (let i = 0; i < count; i++) {\n            finalResults.push(Math.floor(Math.random() * faces) + 1);\n          }\n\n          const sum = finalResults.reduce((a, b) => a + b, 0);\n\n          \/\/ \u7d50\u679c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u4f5c\u6210\n          const result = {\n            mode: state.mode,\n            count: count,\n            faces: faces,\n            results: finalResults,\n            sum: sum,\n            diceStr: diceStr || null,\n            timestamp: new Date().toLocaleTimeString('ja-JP')\n          };\n\n          \/\/ \u5f79\u5224\u5b9a\uff08\u30c1\u30f3\u30c1\u30ed\uff09\n          if (state.mode === 'chinchiro') {\n            result.yaku = judgeChinchiroYaku(finalResults);\n          }\n\n          \/\/ \u9ebb\u96c0\u30e2\u30fc\u30c9\u306e\u8d77\u5bb6\u5224\u5b9a\n          if (state.mode === 'mahjong') {\n            result.position = getMahjongPosition(sum);\n          }\n\n          state.lastResult = result;\n\n          \/\/ \u5c65\u6b74\u8ffd\u52a0\n          state.history.unshift(result);\n          if (state.history.length > 10) {\n            state.history = state.history.slice(0, 10);\n          }\n          saveHistory();\n\n          \/\/ \u30c1\u30f3\u30c1\u30ed\u4ee5\u5916\u306f\u4e8b\u524d\u306bTips\u8868\u793a\uff08\u671f\u5f85\u5024\u306a\u3069\uff09\n          if (state.mode !== 'chinchiro') {\n            displayPreTips(result);\n          }\n\n          \/\/ \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u4e2d\u306e\u8868\u793a\uff08\u30b7\u30f3\u30d7\u30eb\u7248\uff09\n          displayRollingAnimation(result, () => {\n            \/\/ \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u5b8c\u4e86\u5f8c\u306e\u51e6\u7406\n            displayFinalResult(result);\n            displayHistory();\n            elements.actions.classList.remove('websaiko-hidden');\n\n            \/\/ \u30c1\u30f3\u30c1\u30ed\u306e\u5834\u5408\u306e\u307f\u3001\u5f79\u78ba\u5b9a\u5f8c\u306bTips\u8868\u793a\n            if (state.mode === 'chinchiro') {\n              setTimeout(() => {\n                displayTips(result);\n              }, 300);\n            }\n\n            state.isRolling = false;\n            elements.rollBtn.disabled = false;\n          });\n        }\n\n        \/\/ \u9ebb\u96c0\u306e\u8d77\u5bb6\u5224\u5b9a\n        function getMahjongPosition(sum) {\n          \/\/ 1-4: \u8d77\u5bb6\uff08\u81ea\u5206\uff09\u30015-8: \u4e0b\u5bb6\u30019-12: \u5bfe\u9762\u300113\u4ee5\u964d\u306f\u4f59\u308a\u3067\u5224\u5b9a\n          const positions = ['\u8d77\u5bb6\uff08\u81ea\u5206\uff09', '\u4e0b\u5bb6', '\u5bfe\u9762', '\u4e0a\u5bb6'];\n          const index = ((sum - 1) % 4);\n          return positions[index];\n        }\n\n        \/\/ \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u4e2d\u306e\u8868\u793a\uff08\u30b7\u30f3\u30d7\u30eb\u7248\uff1a\u6570\u5b57\u304c\u5909\u308f\u308b\u3060\u3051\uff09\n        \/\/ \u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u4e2d\u306e\u8868\u793a\uff08\u30b7\u30f3\u30d7\u30eb\u7248\uff1a\u6570\u5b57\u304c\u5909\u308f\u308b\u3060\u3051\uff09\n        function displayRollingAnimation(result, onComplete) {\n          let diceHtml = '';\n          let resultHtml = '';\n\n          if (result.mode === 'chinchiro') {\n            \/\/ \u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9\uff1a\u4e3c\u8868\u793a\n            diceHtml = '<div class=\"websaiko-chinchiro-bowl\">';\n            diceHtml += '<div class=\"websaiko-bowl-edge\">';\n            diceHtml += '<div class=\"websaiko-bowl-inside\">';\n            for (let i = 0; i < result.count; i++) {\n              diceHtml += '<div class=\"websaiko-chinchiro-dice rolling\" data-index=\"' + i + '\">?<\/div>';\n            }\n            diceHtml += '<\/div><\/div><\/div>';\n          } else {\n            \/\/ \u901a\u5e38\u8868\u793a\n            diceHtml = '<div class=\"websaiko-dice-container\">';\n            for (let i = 0; i < result.count; i++) {\n              diceHtml += '<div class=\"websaiko-dice rolling\" data-index=\"' + i + '\">?<\/div>';\n            }\n            diceHtml += '<\/div>';\n          }\n\n          elements.display.innerHTML = '<div class=\"websaiko-dice-area\">' + diceHtml + '<\/div><div class=\"websaiko-result-area\"><\/div>';\n\n          \/\/ \u30e9\u30f3\u30c0\u30e0\u6570\u5b57\u306e\u9ad8\u901f\u5207\u308a\u66ff\u3048\n          const diceElements = elements.display.querySelectorAll('.websaiko-dice, .websaiko-chinchiro-dice');\n          const animationDuration = 600; \/\/ 0.6\u79d2\n          const intervalTime = 50; \/\/ 50ms\u3054\u3068\u306b\u5207\u308a\u66ff\u3048\n          const iterations = animationDuration \/ intervalTime;\n          let currentIteration = 0;\n\n          const interval = setInterval(() => {\n            currentIteration++;\n            diceElements.forEach((dice, index) => {\n              const randomNum = Math.floor(Math.random() * result.faces) + 1;\n              dice.textContent = randomNum;\n            });\n\n            if (currentIteration >= iterations) {\n              clearInterval(interval);\n              onComplete();\n            }\n          }, intervalTime);\n        }\n\n        \/\/ \u6700\u7d42\u7d50\u679c\u306e\u8868\u793a\n        function displayFinalResult(result) {\n          let diceHtml = '';\n          let resultHtml = '';\n\n          if (result.mode === 'chinchiro') {\n            \/\/ \u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9\uff1a\u4e3c\u3068\u30b5\u30a4\u30b3\u30ed\n            diceHtml = '<div class=\"websaiko-chinchiro-bowl\">';\n            diceHtml += '<div class=\"websaiko-bowl-edge\">';\n            diceHtml += '<div class=\"websaiko-bowl-inside\">';\n            result.results.forEach(r => {\n              diceHtml += '<div class=\"websaiko-chinchiro-dice\">' + escapeHtml(r) + '<\/div>';\n            });\n            diceHtml += '<\/div><\/div><\/div>';\n            \n            \/\/ \u5f79\u5224\u5b9a\u3092\u7d50\u679c\u30a8\u30ea\u30a2\u306b\n            resultHtml = '<div class=\"websaiko-result-yaku\">' + escapeHtml(result.yaku.name) + '<\/div>';\n          } else {\n            \/\/ \u901a\u5e38\u8868\u793a\uff1a\u30b5\u30a4\u30b3\u30ed\n            diceHtml = '<div class=\"websaiko-dice-container\">';\n            result.results.forEach(r => {\n              diceHtml += '<div class=\"websaiko-dice\">' + escapeHtml(r) + '<\/div>';\n            });\n            diceHtml += '<\/div>';\n\n            \/\/ \u7d50\u679c\u3092\u7d50\u679c\u30a8\u30ea\u30a2\u306b\n            if (result.mode === 'trpg' && result.diceStr) {\n              const formula = result.results.map(r => escapeHtml(r)).join(' + ');\n              resultHtml += '<div class=\"websaiko-result-sub\">(' + formula + ')<\/div>';\n            }\n\n            resultHtml += '<div class=\"websaiko-result-main\">\u5408\u8a08: ' + escapeHtml(result.sum) + '<\/div>';\n\n            \/\/ \u9ebb\u96c0\u30e2\u30fc\u30c9\u306e\u8d77\u5bb6\u8868\u793a\n            if (result.mode === 'mahjong') {\n              resultHtml += '<div class=\"websaiko-mahjong-position\">';\n              resultHtml += '<div class=\"websaiko-mahjong-position-label\">\u914d\u724c\u958b\u59cb\u4f4d\u7f6e<\/div>';\n              resultHtml += '<div class=\"websaiko-mahjong-position-value\">' + escapeHtml(result.position) + '<\/div>';\n              resultHtml += '<\/div>';\n            }\n          }\n\n          elements.display.innerHTML = '<div class=\"websaiko-dice-area\">' + diceHtml + '<\/div><div class=\"websaiko-result-area\">' + resultHtml + '<\/div>';\n        }\n\n        \/\/ \u30c1\u30f3\u30c1\u30ed\u5f79\u5224\u5b9a\n        function judgeChinchiroYaku(results) {\n          const sorted = results.slice().sort((a, b) => a - b);\n          const [a, b, c] = sorted;\n\n          if (a === b && b === c) {\n            if (a === 1) return { name: '\u30d4\u30f3\u30be\u30ed', value: a };\n            return { name: a + '\u306e\u30be\u30ed\u76ee', value: a };\n          }\n\n          if (a === 4 && b === 5 && c === 6) {\n            return { name: '\u30b7\u30b4\u30ed', value: 0 };\n          }\n\n          if (a === 1 && b === 2 && c === 3) {\n            return { name: '\u30d2\u30d5\u30df', value: 0 };\n          }\n\n          if (a === b) {\n            return { name: c + '\u306e\u76ee', value: c };\n          }\n          if (b === c) {\n            return { name: a + '\u306e\u76ee', value: a };\n          }\n\n          return { name: '\u76ee\u306a\u3057', value: 0 };\n        }\n\n        \/\/ Tips\u8868\u793a\uff08\u4e8b\u524d\uff1a\u671f\u5f85\u5024\u306a\u3069\uff09\n        function displayPreTips(result) {\n          let tips = '';\n\n          if (result.mode === 'normal' || result.mode === 'mahjong') {\n            const avg = ((result.faces + 1) \/ 2) * result.count;\n            tips = '\u671f\u5f85\u5024\u306f\u7d04' + avg.toFixed(1) + '\u3067\u3059\u3002';\n          } else if (result.mode === 'trpg') {\n            const avg = ((result.faces + 1) \/ 2) * result.count;\n            tips = '\u671f\u5f85\u5024\u306f\u7d04' + avg.toFixed(1) + '\u3067\u3059\u3002';\n          }\n\n          if (tips) {\n            elements.tipsContent.textContent = tips;\n          }\n        }\n\n        \/\/ Tips\u8868\u793a\uff08\u7d50\u679c\u5f8c\u306e\u8ffd\u52a0\u60c5\u5831\uff09\n        function displayTips(result) {\n          let tips = '';\n\n          if (result.mode === 'chinchiro') {\n            \/\/ \u30c1\u30f3\u30c1\u30ed\u78ba\u7387\u60c5\u5831\n            if (result.yaku.name === '\u30d4\u30f3\u30be\u30ed') {\n              tips = '\u30d4\u30f3\u30be\u30ed\u304c\u51fa\u308b\u78ba\u7387\u306f\u7d040.46%\uff081\/216\uff09\u3067\u3059\uff01\u5927\u5f53\u305f\u308a\uff01';\n            } else if (result.yaku.name.includes('\u30be\u30ed\u76ee')) {\n              tips = '\u30be\u30ed\u76ee\u304c\u51fa\u308b\u78ba\u7387\u306f\u7d042.78%\uff081\/36\uff09\u3067\u3059\uff01';\n            } else if (result.yaku.name === '\u30b7\u30b4\u30ed') {\n              tips = '\u30b7\u30b4\u30ed\u304c\u51fa\u308b\u78ba\u7387\u306f\u7d040.46%\uff081\/216\uff09\u3067\u3059\uff01\u6700\u5f37\u5f79\u3067\u3059\uff01';\n            } else if (result.yaku.name === '\u30d2\u30d5\u30df') {\n              tips = '\u30d2\u30d5\u30df\u304c\u51fa\u308b\u78ba\u7387\u306f\u7d040.46%\uff081\/216\uff09\u3067\u3059\u3002';\n            } else if (result.yaku.name.includes('\u306e\u76ee')) {\n              tips = '\u76ee\u304c\u51fa\u308b\u78ba\u7387\u306f\u7d0450%\u3067\u3059\u3002';\n            } else {\n              tips = '\u76ee\u306a\u3057\u304c\u51fa\u308b\u78ba\u7387\u306f\u7d0444.4%\u3067\u3059\u3002';\n            }\n            elements.tipsContent.textContent = tips;\n          } else if (result.mode === 'normal' || result.mode === 'mahjong') {\n            \/\/ \u901a\u5e38\u30fb\u9ebb\u96c0\u30e2\u30fc\u30c9\uff1a\u7d50\u679c\u5f8c\u306e\u8ffd\u52a0\u60c5\u5831\n            if (result.count === 2 && result.faces === 6) {\n              if (result.results[0] === result.results[1]) {\n                tips = '\u304a\u3081\u3067\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01\u30be\u30ed\u76ee\u304c\u51fa\u308b\u78ba\u7387\u306f\u7d042.78%\uff081\/36\uff09\u3067\u3059\uff01';\n                elements.tipsContent.textContent = tips;\n              } else if (result.sum === 7) {\n                tips = '7\u304c\u51fa\u307e\u3057\u305f\uff012\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u3067\u6700\u3082\u51fa\u3084\u3059\u3044\u76ee\u3067\u3059\uff08\u78ba\u7387\u7d0416.7%\uff09\u3002';\n                elements.tipsContent.textContent = tips;\n              }\n              \/\/ \u305d\u308c\u4ee5\u5916\u306f\u671f\u5f85\u5024\u304c\u3059\u3067\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u305d\u306e\u307e\u307e\n            }\n            \/\/ \u305d\u308c\u4ee5\u5916\u306f\u671f\u5f85\u5024\u304c\u3059\u3067\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u305d\u306e\u307e\u307e\n          } else if (result.mode === 'trpg') {\n            \/\/ TRPG\u30e2\u30fc\u30c9\uff1a\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\/\u30d5\u30a1\u30f3\u30d6\u30eb\n            let baseTips = elements.tipsContent.textContent; \/\/ \u671f\u5f85\u5024\u3092\u4fdd\u6301\n            if (result.diceStr === '1d20' && result.sum === 20) {\n              elements.tipsContent.textContent = baseTips + ' \u30af\u30ea\u30c6\u30a3\u30ab\u30eb\u30d2\u30c3\u30c8\uff01';\n            } else if (result.diceStr === '1d20' && result.sum === 1) {\n              elements.tipsContent.textContent = baseTips + ' \u30d5\u30a1\u30f3\u30d6\u30eb\uff01';\n            }\n            \/\/ \u305d\u308c\u4ee5\u5916\u306f\u671f\u5f85\u5024\u306e\u307f\u3067OK\n          }\n        }\n\n        \/\/ \u5c65\u6b74\u8868\u793a\n        function displayHistory() {\n          if (state.history.length === 0) {\n            elements.history.classList.add('websaiko-hidden');\n            return;\n          }\n\n          let html = '';\n          state.history.forEach(h => {\n            let text = h.timestamp + ' - ';\n            if (h.mode === 'chinchiro') {\n              text += h.yaku.name;\n            } else if (h.mode === 'trpg' && h.diceStr) {\n              text += h.diceStr + ' = ' + h.sum;\n            } else if (h.mode === 'mahjong') {\n              text += h.count + 'd' + h.faces + ' = ' + h.sum + ' (' + h.position + ')';\n            } else {\n              text += h.count + 'd' + h.faces + ' = ' + h.sum;\n            }\n            html += '<li class=\"websaiko-history-item\">' + escapeHtml(text) + '<\/li>';\n          });\n\n          elements.historyList.innerHTML = html;\n          elements.history.classList.remove('websaiko-hidden');\n        }\n\n        \/\/ \u7d50\u679c\u30b3\u30d4\u30fc\n        function copyResult() {\n          if (!state.lastResult) return;\n\n          let text = '';\n          if (state.lastResult.mode === 'chinchiro') {\n            text = 'WEB\u30b5\u30a4\u30b3\u30ed\u3067\u300c' + state.lastResult.yaku.name + '\u300d\u3092\u51fa\u3057\u307e\u3057\u305f\uff01';\n          } else if (state.lastResult.mode === 'trpg' && state.lastResult.diceStr) {\n            text = state.lastResult.diceStr + '\u306e\u7d50\u679c: ' + state.lastResult.sum;\n          } else if (state.lastResult.mode === 'mahjong') {\n            text = '\u30b5\u30a4\u30b3\u30ed\u306e\u7d50\u679c: ' + state.lastResult.sum + ' (' + state.lastResult.position + ')';\n          } else {\n            text = '\u30b5\u30a4\u30b3\u30ed\u306e\u7d50\u679c: ' + state.lastResult.sum;\n          }\n\n          if (navigator.clipboard && navigator.clipboard.writeText) {\n            navigator.clipboard.writeText(text).then(() => {\n              showTemporaryMessage('\u7d50\u679c\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01');\n            }).catch(() => {\n              fallbackCopy(text);\n            });\n          } else {\n            fallbackCopy(text);\n          }\n        }\n\n        \/\/ \u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u30b3\u30d4\u30fc\n        function fallbackCopy(text) {\n          const textarea = document.createElement('textarea');\n          textarea.value = text;\n          textarea.style.position = 'fixed';\n          textarea.style.opacity = '0';\n          document.body.appendChild(textarea);\n          textarea.select();\n          try {\n            document.execCommand('copy');\n            showTemporaryMessage('\u7d50\u679c\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01');\n          } catch (e) {\n            showError('\u30b3\u30d4\u30fc\u306b\u5931\u6557\u3057\u307e\u3057\u305f');\n          }\n          document.body.removeChild(textarea);\n        }\n\n        \/\/ \u4e00\u6642\u30e1\u30c3\u30bb\u30fc\u30b8\u8868\u793a\n        function showTemporaryMessage(message) {\n          const originalText = elements.copyBtn.textContent;\n          elements.copyBtn.textContent = message;\n          setTimeout(() => {\n            elements.copyBtn.textContent = originalText;\n          }, 2000);\n        }\n\n        \/\/ \u30b7\u30a7\u30a2\n        function shareResult() {\n          if (!state.lastResult) return;\n\n          let text = '';\n          if (state.lastResult.mode === 'chinchiro') {\n            text = 'WEB\u30b5\u30a4\u30b3\u30ed\u3067\u300c' + state.lastResult.yaku.name + '\u300d\u3092\u51fa\u3057\u307e\u3057\u305f\uff01';\n          } else {\n            text = '\u30b5\u30a4\u30b3\u30ed\u306e\u7d50\u679c: ' + state.lastResult.sum;\n          }\n\n          const url = encodeURIComponent(window.location.href);\n          const hashtag = encodeURIComponent('#WEB\u30b5\u30a4\u30b3\u30ed');\n          const tweetText = encodeURIComponent(text) + ' ' + hashtag;\n          const tweetUrl = 'https:\/\/twitter.com\/intent\/tweet?text=' + tweetText + '&url=' + url;\n          \n          window.open(tweetUrl, '_blank', 'width=550,height=420');\n        }\n\n        \/\/ \u30b5\u30a6\u30f3\u30c9\u518d\u751f\n        \/\/ \u5c65\u6b74\u4fdd\u5b58\n        function saveHistory() {\n          try {\n            const historyData = {\n              mode: state.mode,\n              items: state.history\n            };\n            localStorage.setItem('websaiko_history_' + state.mode, JSON.stringify(historyData));\n          } catch (e) {\n            \/\/ localStorage\u4f7f\u7528\u4e0d\u53ef\u6642\u306f\u7121\u8996\n          }\n        }\n\n        \/\/ \u5c65\u6b74\u8aad\u307f\u8fbc\u307f\n        function loadHistory() {\n          try {\n            const saved = localStorage.getItem('websaiko_history_' + state.mode);\n            if (saved) {\n              const data = JSON.parse(saved);\n              if (data.mode === state.mode && Array.isArray(data.items)) {\n                state.history = data.items.slice(0, 10);\n              }\n            }\n          } catch (e) {\n            \/\/ \u8aad\u307f\u8fbc\u307f\u5931\u6557\u306f\u7121\u8996\n          }\n        }\n\n        \/\/ XSS\u5bfe\u7b56: HTML\u30a8\u30b9\u30b1\u30fc\u30d7\n        function escapeHtml(unsafe) {\n          const div = document.createElement('div');\n          div.textContent = String(unsafe);\n          return div.innerHTML;\n        }\n      }\n    })();\n  <\/script>\n<\/div>\n\n\n\n<p>\u30d6\u30e9\u30a6\u30b6\u4e0a\u3067\u300c\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3060\u3051\u3067\u3001\u3059\u3050\u306b\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u308b\u7121\u6599\u306eWEB\u30b5\u30a4\u30b3\u30ed\u30c4\u30fc\u30eb\u3067\u3059\u3002\u901a\u5e38\u306e\u30b5\u30a4\u30b3\u30ed\u3060\u3051\u3067\u306a\u304f\u3001\u30c1\u30f3\u30c1\u30ed\u3084TRPG\u3001\u9ebb\u96c0\u306a\u3069\u306b\u7279\u5316\u3057\u305f\u5c02\u7528\u30e2\u30fc\u30c9\u3082\u5099\u3048\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-0\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u3067\u304d\u308b\u3053\u3068<\/h2>\n\n\n\n<p>\u3053\u306e\u30c4\u30fc\u30eb\u306f\u3001\u5358\u306b1\u301c6\u306e\u6570\u5b57\u3092\u51fa\u3059\u3060\u3051\u3067\u306a\u304f\u3001\u5229\u7528\u30b7\u30fc\u30f3\u306b\u5408\u308f\u305b\u305f4\u3064\u306e\u30e2\u30fc\u30c9\u3092\u642d\u8f09\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u901a\u5e38\u30e2\u30fc\u30c9:<\/strong> \u30b5\u30a4\u30b3\u30ed\u306e\u500b\u6570\uff08\u6700\u592750\u500b\uff09\u3068\u9762\u6570\uff08\u6700\u59279999\u9762\uff09\u3092\u81ea\u7531\u306b\u8a2d\u5b9a\u3057\u3066\u4e71\u6570\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9:<\/strong> \u30b5\u30a4\u30b3\u30ed\u30923\u3064\u632f\u308a\u3001\u81ea\u52d5\u3067\u300c\u30b7\u30b4\u30ed\u300d\u3084\u300c\u30d4\u30f3\u30be\u30ed\u300d\u306a\u3069\u306e\u5f79\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>TRPG\u30e2\u30fc\u30c9:<\/strong> 1d6\u30841d20\u306a\u3069\u3001\u30c6\u30fc\u30d6\u30eb\u30c8\u30fc\u30afRPG\u3067\u983b\u51fa\u3059\u308b\u30c0\u30a4\u30b9\u3092\u30ef\u30f3\u30bf\u30c3\u30d7\u3067\u632f\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u9ebb\u96c0\u30e2\u30fc\u30c9:<\/strong> 2\u3064\u306e\u30b5\u30a4\u30b3\u30ed\u306e\u5408\u8a08\u5024\u304b\u3089\u3001\u914d\u724c\u3092\u53d6\u308a\u59cb\u3081\u308b\u4f4d\u7f6e\uff08\u8d77\u5bb6\u3001\u5bfe\u9762\u306a\u3069\uff09\u3092\u81ea\u52d5\u3067\u8868\u793a\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-1\">WEB\u30b5\u30a4\u30b3\u30ed\u306e\u4f7f\u3044\u65b9<\/h2>\n\n\n\n<p>\u64cd\u4f5c\u306f\u975e\u5e38\u306b\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u30e2\u30fc\u30c9\u3092\u9078\u629e\u3059\u308b:<\/strong> \u753b\u9762\u4e0a\u90e8\u306e\u30bf\u30d6\u304b\u3089\u3001\u5229\u7528\u3057\u305f\u3044\u30e2\u30fc\u30c9\uff08\u901a\u5e38\u30fb\u30c1\u30f3\u30c1\u30ed\u30fbTRPG\u30fb\u9ebb\u96c0\uff09\u3092\u30bf\u30c3\u30d7\u3057\u3066\u5207\u308a\u66ff\u3048\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u6761\u4ef6\u3092\u8a2d\u5b9a\u3059\u308b:<\/strong> \u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30b5\u30a4\u30b3\u30ed\u306e\u6570\u3084\u7a2e\u985e\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\uff08\u901a\u5e38\u30e2\u30fc\u30c9\u30fbTRPG\u30e2\u30fc\u30c9\u306e\u307f\uff09<\/li>\n\n\n\n<li><strong>\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b:<\/strong> \u300c\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002PC\u306e\u5834\u5408\u306f\u30b9\u30da\u30fc\u30b9\u30ad\u30fc\u3084\u30a8\u30f3\u30bf\u30fc\u30ad\u30fc\u3067\u5b9f\u884c\u53ef\u80fd\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u7d50\u679c\u3092\u78ba\u8a8d\u3059\u308b:<\/strong> \u753b\u9762\u4e2d\u592e\u306b\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3068\u5171\u306b\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5c65\u6b74\u6a5f\u80fd\u3084\u7d50\u679c\u306e\u30b3\u30d4\u30fc\u6a5f\u80fd\u3082\u5229\u7528\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-2\">\u30b5\u30a4\u30b3\u30ed\u306e\u78ba\u7387\u3068\u57fa\u790e\u77e5\u8b58<\/h2>\n\n\n\n<p>\u901a\u5e38\u306e6\u9762\u30b5\u30a4\u30b3\u30ed\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u305d\u308c\u305e\u308c\u306e\u76ee\u304c\u51fa\u308b\u78ba\u7387\u306f1\/6\uff08\u7d0416.7%\uff09\u3067\u3059\u3002\u3057\u304b\u3057\u3001\u8907\u6570\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u305d\u306e\u78ba\u7387\u306f\u5909\u5316\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-3\">2\u500b\u632f\u3063\u305f\u3068\u304d\u306e\u78ba\u7387\u5206\u5e03<\/h3>\n\n\n\n<p>2\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u540c\u6642\u306b\u632f\u308b\u5834\u5408\u3001\u5408\u8a08\u5024\u3067\u6700\u3082\u51fa\u73fe\u78ba\u7387\u304c\u9ad8\u3044\u306e\u306f\u300c7\u300d\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5408\u8a087\u304c\u51fa\u308b\u78ba\u7387:<\/strong> \u7d0416.7%\uff086\/36\u901a\u308a\uff09<\/li>\n\n\n\n<li><strong>\u30be\u30ed\u76ee\u304c\u51fa\u308b\u78ba\u7387:<\/strong> \u7d042.8%\uff081\/36\u901a\u308a\uff09<\/li>\n\n\n\n<li><strong>\u5408\u8a082\u307e\u305f\u306f12\u304c\u51fa\u308b\u78ba\u7387:<\/strong> \u7d042.8%\uff081\/36\u901a\u308a\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001\u51fa\u305f\u76ee\u306b\u5fdc\u3058\u305f\u78ba\u7387\u306e\u8c46\u77e5\u8b58\u3082\u8868\u793a\u3055\u308c\u308b\u305f\u3081\u3001\u78ba\u7387\u306e\u5b66\u7fd2\u3084\u78ba\u8a8d\u306b\u3082\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-4\">\u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9\u306e\u5f79\u3068\u30eb\u30fc\u30eb\u89e3\u8aac<\/h2>\n\n\n\n<p>\u3053\u306e\u30c4\u30fc\u30eb\u306e\u300c\u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9\u300d\u3067\u306f\u30013\u3064\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u3063\u3066\u5f79\u3092\u7af6\u3046\u65e5\u672c\u306e\u4f1d\u7d71\u7684\u306a\u30b2\u30fc\u30e0\u306e\u5224\u5b9a\u3092\u81ea\u52d5\u3067\u884c\u3044\u307e\u3059\u3002\u4e3c\u306e\u4e2d\u3067\u30b5\u30a4\u30b3\u30ed\u304c\u56de\u308b\u6f14\u51fa\u3068\u5171\u306b\u3001\u4ee5\u4e0b\u306e\u5f79\u3092\u77ac\u6642\u306b\u5224\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30d4\u30f3\u30be\u30ed\uff081-1-1\uff09:<\/strong> \u6700\u5f37\u306e\u5f79\u3068\u3055\u308c\u3001\u901a\u5e38\u306f5\u500d\u4ed8\u3051\u306a\u3069\u306e\u9ad8\u914d\u5f53\u3068\u306a\u308a\u307e\u3059\u3002\u51fa\u73fe\u78ba\u7387\u306f\u7d040.5%\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30b7\u30b4\u30ed\uff084-5-6\uff09:<\/strong> \u9023\u7d9a\u3057\u305f\u6570\u5b57\u304c\u51fa\u308b\u5f79\u3067\u3001\u30d4\u30f3\u30be\u30ed\u306b\u6b21\u3044\u3067\u5f37\u529b\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30be\u30ed\u76ee:<\/strong> 3\u3064\u3068\u3082\u540c\u3058\u6570\u5b57\u304c\u63c3\u3046\u5f79\u3067\u3059\uff082-2-2\u306a\u3069\uff09\u3002<\/li>\n\n\n\n<li><strong>\u901a\u5e38\u306e\u76ee:<\/strong> 2\u3064\u306e\u30b5\u30a4\u30b3\u30ed\u304c\u540c\u3058\u6570\u5b57\u306e\u5834\u5408\u3001\u6b8b\u308a\u306e1\u3064\u304c\u305d\u306e\u56de\u306e\u300c\u76ee\uff08\u30dd\u30a4\u30f3\u30c8\uff09\u300d\u3068\u306a\u308a\u307e\u3059\u3002\uff08\u4f8b\uff1a6-6-2\u306a\u30892\u304c\u76ee\uff09<\/li>\n\n\n\n<li><strong>\u30d2\u30d5\u30df\uff081-2-3\uff09:<\/strong> \u8ca0\u3051\u304c\u78ba\u5b9a\u3059\u308b\u6700\u5f31\u306e\u5f79\u3068\u3055\u308c\u3001\u500d\u984d\u6255\u3044\u306a\u3069\u306e\u30da\u30ca\u30eb\u30c6\u30a3\u3068\u306a\u308b\u3053\u3068\u304c\u4e00\u822c\u7684\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u76ee\u306a\u3057:<\/strong> \u5f79\u3082\u76ee\u3082\u6210\u7acb\u3057\u306a\u3044\u72b6\u614b\u3067\u3059\u30023\u56de\u632f\u3063\u3066\u3082\u76ee\u306a\u3057\u306e\u5834\u5408\u306f\u8ca0\u3051\u3068\u306a\u308b\u30eb\u30fc\u30eb\u304c\u4e00\u822c\u7684\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-5\">TRPG\uff08\u30c6\u30fc\u30d6\u30eb\u30c8\u30fc\u30afRPG\uff09\u3067\u4f7f\u3046\u30c0\u30a4\u30b9\u306e\u7a2e\u985e<\/h2>\n\n\n\n<p>\u300cTRPG\u30e2\u30fc\u30c9\u300d\u3067\u306f\u3001\u30b2\u30fc\u30e0\u9032\u884c\u306b\u5fc5\u8981\u306a\u591a\u9762\u4f53\u30c0\u30a4\u30b9\u3092\u3059\u3050\u306b\u547c\u3073\u51fa\u305b\u307e\u3059\u3002\u300cxdY\uff08Y\u9762\u30c0\u30a4\u30b9\u3092x\u500b\u632f\u308b\uff09\u300d\u3068\u3044\u3046\u8868\u8a18\u306b\u5bfe\u5fdc\u3057\u3066\u304a\u308a\u3001\u8a08\u7b97\u7d50\u679c\u3082\u81ea\u52d5\u3067\u5408\u7b97\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>1d4\uff084\u9762\u30c0\u30a4\u30b9\uff09:<\/strong> \u4e09\u89d2\u9310\u306e\u5f62\u3092\u3057\u3066\u304a\u308a\u3001\u9b54\u6cd5\u306e\u30c0\u30e1\u30fc\u30b8\u6c7a\u5b9a\u3084\u30dd\u30fc\u30b7\u30e7\u30f3\u306e\u56de\u5fa9\u91cf\u306a\u3069\u3067\u4f7f\u308f\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>1d6\uff086\u9762\u30c0\u30a4\u30b9\uff09:<\/strong> \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u4f5c\u6210\u6642\u306e\u80fd\u529b\u5024\u6c7a\u5b9a\u306a\u3069\u3001\u6700\u3082\u6c4e\u7528\u7684\u306b\u4f7f\u308f\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>1d10\uff0810\u9762\u30c0\u30a4\u30b9\uff09:<\/strong> 0\u301c9\u306e\u6570\u5b57\u304c\u66f8\u304b\u308c\u3066\u304a\u308a\u3001100\u5206\u7387\uff08\u30d1\u30fc\u30bb\u30f3\u30c6\u30fc\u30b8\uff09\u3092\u5224\u5b9a\u3059\u308b\u969b\u306b\u3088\u304f\u4f7f\u308f\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>1d20\uff0820\u9762\u30c0\u30a4\u30b9\uff09:<\/strong> \u591a\u304f\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u300c\u547d\u4e2d\u5224\u5b9a\u300d\u3084\u300c\u884c\u70ba\u5224\u5b9a\u300d\u306b\u4f7f\u308f\u308c\u308b\u91cd\u8981\u306a\u30c0\u30a4\u30b9\u3067\u3059\u3002\u300c20\u300d\u304c\u51fa\u308b\u3068\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\uff08\u5927\u6210\u529f\uff09\u3001\u300c1\u300d\u304c\u51fa\u308b\u3068\u30d5\u30a1\u30f3\u30d6\u30eb\uff08\u5927\u5931\u6557\uff09\u3068\u306a\u308b\u3053\u3068\u304c\u591a\u304f\u3001\u3053\u306e\u30c4\u30fc\u30eb\u3067\u3082\u305d\u306e\u65e8\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>1d100\uff08100\u9762\u30c0\u30a4\u30b9\uff09:<\/strong> \u5b9f\u969b\u306b100\u9762\u306e\u7403\u4f53\u30c0\u30a4\u30b9\u3092\u4f7f\u3046\u304b\u300110\u9762\u30c0\u30a4\u30b9\u30922\u500b\u4f7f\u3063\u30661\u301c100\u306e\u4e71\u6570\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-6\">\u9ebb\u96c0\u30e2\u30fc\u30c9\u3067\u306e\u958b\u9580\u4f4d\u7f6e\uff08\u914d\u724c\u5834\u6240\uff09\u306e\u6c7a\u3081\u65b9<\/h2>\n\n\n\n<p>\u9ebb\u96c0\u3067\u306f\u3001\u5c40\u306e\u958b\u59cb\u6642\u306b\u89aa\u304c2\u3064\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308a\u3001\u3069\u3053\u304b\u3089\u724c\u3092\u53d6\u308a\u59cb\u3081\u308b\u304b\u3092\u6c7a\u3081\u307e\u3059\u3002\u3053\u308c\u3092\u300c\u958b\u9580\uff08\u30ab\u30a4\u30e1\u30f3\uff09\u300d\u3068\u8a00\u3044\u307e\u3059\u304c\u3001\u8a08\u7b97\u304c\u8907\u96d1\u3067\u521d\u5fc3\u8005\u306b\u306f\u96e3\u3057\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u3053\u306e\u30c4\u30fc\u30eb\u306e\u300c\u9ebb\u96c0\u30e2\u30fc\u30c9\u300d\u3067\u306f\u3001\u30b5\u30a4\u30b3\u30ed\u306e\u5408\u8a08\u5024\u304b\u3089\u4ee5\u4e0b\u306e\u4f4d\u7f6e\u3092\u81ea\u52d5\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5408\u8a08 5, 9:<\/strong> \u81ea\u5bb6\uff08\u81ea\u5206\u306e\u5c71\uff09\u304b\u3089\u53d6\u308a\u59cb\u3081\u308b<\/li>\n\n\n\n<li><strong>\u5408\u8a08 2, 6, 10:<\/strong> \u4e0b\u5bb6\uff08\u53f3\u96a3\u306e\u4eba\uff09\u306e\u5c71\u304b\u3089\u53d6\u308a\u59cb\u3081\u308b<\/li>\n\n\n\n<li><strong>\u5408\u8a08 3, 7, 11:<\/strong> \u5bfe\u9762\uff08\u5411\u304b\u3044\u306e\u4eba\uff09\u306e\u5c71\u304b\u3089\u53d6\u308a\u59cb\u3081\u308b<\/li>\n\n\n\n<li><strong>\u5408\u8a08 4, 8, 12:<\/strong> \u4e0a\u5bb6\uff08\u5de6\u96a3\u306e\u4eba\uff09\u306e\u5c71\u304b\u3089\u53d6\u308a\u59cb\u3081\u308b<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">\u3053\u306e\u30c4\u30fc\u30eb\u304c\u5f79\u7acb\u3064\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30dc\u30fc\u30c9\u30b2\u30fc\u30e0\u30fb\u3059\u3054\u308d\u304f:<\/strong> \u4ed8\u5c5e\u306e\u30b5\u30a4\u30b3\u30ed\u3092\u7d1b\u5931\u3057\u3066\u3057\u307e\u3063\u305f\u5834\u5408\u3084\u3001\u5916\u51fa\u5148\u3067\u30b2\u30fc\u30e0\u3092\u3059\u308b\u969b\u306b\u3002<\/li>\n\n\n\n<li><strong>TRPG\u30bb\u30c3\u30b7\u30e7\u30f3:<\/strong> \u30c0\u30a4\u30b9\u3092\u6301\u3061\u5408\u308f\u305b\u3066\u3044\u306a\u3044\u5834\u5408\u3084\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u306e\u5224\u5b9a\u30c4\u30fc\u30eb\u3068\u3057\u3066\u3002<\/li>\n\n\n\n<li><strong>\u610f\u601d\u6c7a\u5b9a\u30fb\u62bd\u9078:<\/strong> \u30e9\u30f3\u30c1\u306e\u5834\u6240\u6c7a\u3081\u3084\u3001\u7f70\u30b2\u30fc\u30e0\u306e\u62bd\u9078\u3001\u30d7\u30ec\u30bc\u30f3\u30c8\u5f53\u9078\u8005\u306e\u6c7a\u5b9a\u306a\u3069\u3001\u516c\u5e73\u306a\u4e71\u6570\u304c\u5fc5\u8981\u306a\u6642\u306b\u3002<\/li>\n\n\n\n<li><strong>\u98f2\u307f\u4f1a\u30fb\u30d1\u30fc\u30c6\u30a3\u30fc:<\/strong> \u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9\u3092\u4f7f\u3063\u3066\u3001\u76db\u308a\u4e0a\u304c\u308b\u30b2\u30fc\u30e0\u30c4\u30fc\u30eb\u3068\u3057\u3066\u3002<\/li>\n\n\n\n<li><strong>\u7b97\u6570\u30fb\u6570\u5b66\u306e\u6388\u696d:<\/strong> \u78ba\u7387\u3084\u7d71\u8a08\u306e\u6559\u6750\u3068\u3057\u3066\u3001\u30c7\u30b8\u30bf\u30eb\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u3092\u5229\u7528\u3057\u305f\u3044\u6642\u306b\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u306eWEB\u30b5\u30a4\u30b3\u30ed\u306f\u3001PC\u30fb\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u30fb\u30bf\u30d6\u30ec\u30c3\u30c8\u306e\u3069\u306e\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u3067\u3082\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4e0d\u8981\u304b\u3064\u7121\u6599\u3067\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3059\u3002\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\u3057\u3066\u304a\u304f\u3068\u3001\u3044\u3056\u3068\u3044\u3046\u6642\u306b\u4fbf\u5229\u306b\u4f7f\u3048\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u901a\u5e38\u30e2\u30fc\u30c9 \u30c1\u30f3\u30c1\u30ed\u30e2\u30fc\u30c9 TRPG\u30e2\u30fc\u30c9 \u9ebb\u96c0\u30e2\u30fc\u30c9 \u30b5\u30a4\u30b3\u30ed\u306e\u500b\u6570\uff081\u301c50\uff09 \u30b5\u30a4\u30b3\u30ed\u306e\u9762\u6570\uff082\u301c9999\uff09 \u3088\u304f\u4f7f\u3046\u30c0\u30a4\u30b9 1d4 1d6 1d10 1d20 1d100 \u30ab\u30b9\u30bf\u30e0\u30c0\u30a4\u30b9 d \u3053\u306e\u30e2\u30fc\u30c9\u3067\u306f\u8a2d\u5b9a\u304c &#8230; <\/p>\n","protected":false},"author":4,"featured_media":9117,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,39],"tags":[],"class_list":{"0":"post-9111","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tool","8":"category-life","9":"entry"},"_links":{"self":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/9111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/comments?post=9111"}],"version-history":[{"count":6,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/9111\/revisions"}],"predecessor-version":[{"id":9118,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/9111\/revisions\/9118"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/media\/9117"}],"wp:attachment":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/media?parent=9111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/categories?post=9111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/tags?post=9111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}