{"id":17971,"date":"2024-01-29T18:51:49","date_gmt":"2024-01-29T09:51:49","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=17971"},"modified":"2024-01-29T19:14:20","modified_gmt":"2024-01-29T10:14:20","slug":"%e3%83%9e%e3%83%ab%e3%83%81%e3%83%97%e3%83%ac%e3%82%a4%e3%83%a4%e3%83%bc%e6%95%b0%e5%bd%93%e3%81%a6%e3%82%b2%e3%83%bc%e3%83%a0","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=17971","title":{"rendered":"\u30de\u30eb\u30c1\u30d7\u30ec\u30a4\u30e4\u30fc\u6570\u5f53\u3066\u30b2\u30fc\u30e0"},"content":{"rendered":"\n<p>index.html<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-html\" data-lang=\"HTML\"><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=&quot;ja&quot;&gt;\n&lt;head&gt;\n  &lt;meta charset=&quot;UTF-8&quot;&gt;\n  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;\n  &lt;link rel=&quot;stylesheet&quot; href=&quot;styles.css&quot;&gt;\n  &lt;title&gt;\u30de\u30eb\u30c1\u30d7\u30ec\u30a4\u30e4\u30fc\u6570\u5f53\u3066\u30b2\u30fc\u30e0&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;header&gt;\n  &lt;h1&gt;\u30de\u30eb\u30c1\u30d7\u30ec\u30a4\u30e4\u30fc\u6570\u5f53\u3066\u30b2\u30fc\u30e0&lt;\/h1&gt;\n&lt;\/header&gt;\n\n&lt;div class=&quot;player-registration&quot;&gt;\n  &lt;input type=&quot;text&quot; id=&quot;playerName&quot; placeholder=&quot;\u30d7\u30ec\u30a4\u30e4\u30fc\u540d&quot;&gt;\n  &lt;input type=&quot;file&quot; id=&quot;profileImage&quot; accept=&quot;image\/*&quot;&gt;\n  &lt;button id=&quot;submitPlayer&quot;&gt;\u30d7\u30ec\u30a4\u30e4\u30fc\u767b\u9332&lt;\/button&gt;\n&lt;\/div&gt;\n\n&lt;!-- \u30e2\u30fc\u30c0\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u8ffd\u52a0 --&gt;\n&lt;div id=&quot;modal&quot; class=&quot;modal&quot;&gt;\n  &lt;div class=&quot;modal-content&quot;&gt;\n    &lt;span class=&quot;close-button&quot;&gt;\u00d7&lt;\/span&gt;\n    &lt;p id=&quot;modalMessage&quot;&gt;&lt;\/p&gt;\n  &lt;\/div&gt;\n&lt;\/div&gt;\n\n&lt;section class=&quot;game-rules&quot;&gt;\n  &lt;h2&gt;\u30b2\u30fc\u30e0\u306e\u30eb\u30fc\u30eb&lt;\/h2&gt;\n  &lt;p&gt;1\u304b\u3089100\u307e\u3067\u306e\u6570\u5b57\u309210\u56de\u4ee5\u5185\u306b\u5f53\u3066\u3066\u304f\u3060\u3055\u3044\u3002\u6b63\u89e3\u3059\u308b\u3068\u30dd\u30a4\u30f3\u30c8\u304c\u7372\u5f97\u3067\u304d\u307e\u3059\u3002&lt;\/p&gt;\n&lt;\/section&gt;\n\n&lt;div class=&quot;game-container&quot;&gt;\n  &lt;div class=&quot;user-stats&quot;&gt;\n    &lt;p&gt;\u7dcf\u30d7\u30ec\u30a4\u30b2\u30fc\u30e0\u6570: &lt;span id=&quot;totalGamesPlayed&quot;&gt;0&lt;\/span&gt;&lt;\/p&gt;\n    &lt;p&gt;\u6b63\u89e3\u7dcf\u6570: &lt;span id=&quot;totalCorrectGuesses&quot;&gt;0&lt;\/span&gt;&lt;\/p&gt;\n  &lt;\/div&gt;\n\n  &lt;div class=&quot;live-feedback&quot; id=&quot;liveFeedback&quot;&gt;&lt;\/div&gt;\n\n  &lt;input type=&quot;number&quot; id=&quot;guessInput&quot; min=&quot;1&quot; max=&quot;100&quot; placeholder=&quot;\u3042\u306a\u305f\u306e\u4e88\u60f3&quot;&gt;\n  &lt;button id=&quot;guessButton&quot;&gt;\u4e88\u60f3\u3059\u308b&lt;\/button&gt;\n  &lt;p id=&quot;message&quot;&gt;&lt;\/p&gt;\n  &lt;p&gt;\u6b8b\u308a\u4e88\u60f3\u56de\u6570: &lt;span id=&quot;remainingGuesses&quot;&gt;10&lt;\/span&gt;&lt;\/p&gt;\n&lt;\/div&gt;\n\n&lt;div class=&quot;leaderboard&quot;&gt;\n  &lt;h2&gt;\u30c8\u30c3\u30d7\u30d7\u30ec\u30a4\u30e4\u30fc&lt;\/h2&gt;\n  &lt;ul id=&quot;topPlayers&quot;&gt;&lt;\/ul&gt;\n&lt;\/div&gt;\n\n&lt;footer&gt;\n  &lt;p&gt;\u00a9 2023 \u6570\u5f53\u3066\u30b2\u30fc\u30e0\u958b\u767a\u8005&lt;\/p&gt;\n  &lt;p&gt;\u304a\u554f\u3044\u5408\u308f\u305b: &lt;a href=&quot;mailto:contact:tyosuke2010@gmail.com&quot;&gt;contact:tyosuke2010@gmail.com&lt;\/a&gt;&lt;\/p&gt;\n&lt;\/footer&gt;\n\n&lt;script src=&quot;script.js&quot;&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre><\/div>\n\n\n\n<p>script.js<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-js\" data-lang=\"JavaScript\"><code>document.addEventListener(&#39;DOMContentLoaded&#39;, () =&gt; {\n    let secretNumber = Math.floor(Math.random() * 100) + 1;\n    let guessesRemaining = 10;\n    let gamesPlayed = 0;\n    let correctGuesses = 0;\n\n    const playerNameInput = document.getElementById(&#39;playerName&#39;);\n    const submitPlayerButton = document.getElementById(&#39;submitPlayer&#39;);\n    const guessInput = document.getElementById(&#39;guessInput&#39;);\n    const guessButton = document.getElementById(&#39;guessButton&#39;);\n    const message = document.getElementById(&#39;message&#39;);\n    const totalGamesPlayed = document.getElementById(&#39;totalGamesPlayed&#39;);\n    const totalCorrectGuesses = document.getElementById(&#39;totalCorrectGuesses&#39;);\n    const remainingGuesses = document.getElementById(&#39;remainingGuesses&#39;);\n    const liveFeedback = document.getElementById(&#39;liveFeedback&#39;);\n\n    submitPlayerButton.addEventListener(&#39;click&#39;, () =&gt; {\n        const playerName = playerNameInput.value;\n        if (playerName) {\n            alert(`\u3088\u3046\u3053\u305d\u3001${playerName}\u3055\u3093\uff01`);\n            playerNameInput.disabled = true;\n            submitPlayerButton.disabled = true;\n        } else {\n            alert(&#39;\u30d7\u30ec\u30a4\u30e4\u30fc\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002&#39;);\n        }\n    });\n\n    guessButton.addEventListener(&#39;click&#39;, () =&gt; {\n        const userGuess = parseInt(guessInput.value);\n        if (!userGuess || userGuess &lt; 1 || userGuess &gt; 100) {\n            alert(&#39;1\u304b\u3089100\u307e\u3067\u306e\u6570\u5b57\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002&#39;);\n            return;\n        }\n\n        guessesRemaining--;\n        remainingGuesses.textContent = guessesRemaining;\n\n        if (userGuess === secretNumber) {\n            correctGuesses++;\n            totalCorrectGuesses.textContent = correctGuesses;\n            message.textContent = `\u6b63\u89e3\uff01 ${userGuess} \u304c\u6b63\u3057\u3044\u6570\u5b57\u3067\u3059\uff01`;\n            resetGame();\n        } else if (guessesRemaining === 0) {\n            message.textContent = `\u30b2\u30fc\u30e0\u30aa\u30fc\u30d0\u30fc\uff01\u6b63\u3057\u3044\u6570\u5b57\u306f ${secretNumber} \u3067\u3057\u305f\u3002`;\n            resetGame();\n        } else {\n            message.textContent = userGuess &gt; secretNumber ? &#39;\u3082\u3063\u3068\u4f4e\u3044\u6570\u5b57\u3067\u3059\uff01&#39; : &#39;\u3082\u3063\u3068\u9ad8\u3044\u6570\u5b57\u3067\u3059\uff01&#39;;\n            liveFeedback.textContent = `\u3042\u306a\u305f\u306e\u4e88\u60f3: ${userGuess}`;\n        }\n    });\n\n    function resetGame() {\n        secretNumber = Math.floor(Math.random() * 100) + 1;\n        guessesRemaining = 10;\n        remainingGuesses.textContent = guessesRemaining;\n        guessInput.value = &#39;&#39;;\n        gamesPlayed++;\n        totalGamesPlayed.textContent = gamesPlayed;\n    }\n});\n<\/code><\/pre><\/div>\n\n\n\n<p>style.css<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-css\" data-lang=\"CSS\"><code>body {\n    font-family: &#39;Arial&#39;, sans-serif;\n    background-color: #f4f4f4;\n    color: #333;\n    line-height: 1.6;\n    padding: 0;\n    margin: 0;\n    text-align: center;\n}\n\nheader {\n    background: #333;\n    color: #fff;\n    padding: 1rem 0;\n    margin-bottom: 15px;\n}\n\nheader h1 {\n    margin: 0;\n}\n\n.player-registration, .game-container, .game-rules, .leaderboard {\n    max-width: 600px;\n    margin: 20px auto;\n    padding: 20px;\n    border: 1px solid #ddd;\n    background: #fff;\n    border-radius: 10px;\n    box-shadow: 2px 2px 5px rgba(0,0,0,0.3);\n}\n\ninput[type=&#39;text&#39;], input[type=&#39;number&#39;], input[type=&#39;file&#39;], button {\n    display: block;\n    width: 90%;\n    padding: 10px;\n    margin: 10px auto;\n    border-radius: 5px;\n    border: 1px solid #ddd;\n}\n\nbutton {\n    background-color: #5f9ea0;\n    color: #fff;\n    border: none;\n    cursor: pointer;\n}\n\nbutton:hover {\n    background-color: #486f70;\n}\n\nfooter {\n    background: #333;\n    color: #fff;\n    text-align: center;\n    padding: 1rem 0;\n    position: absolute;\n    bottom: 0;\n    width: 100%;\n}\n\nfooter p {\n    margin: 0;\n}\n\n\/* \u8ffd\u52a0\u30b9\u30bf\u30a4\u30eb *\/\nul {\n    list-style-type: none;\n    padding: 0;\n}\n\nli {\n    margin-bottom: 5px;\n    \n}\n<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>index.html script.js style.css<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[4,6,44],"tags":[3,16],"class_list":["post-17971","post","type-post","status-publish","format-standard","hentry","category-programming","category-web","category-44","tag-programming","tag-webdev"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/17971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17971"}],"version-history":[{"count":2,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/17971\/revisions"}],"predecessor-version":[{"id":17977,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/17971\/revisions\/17977"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17971"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}