メむンコンテンツぞスキップ
芋出し画像

HTMLゲヌムの䜜り方 初心者向け1ファむルを保存しお動かす手順

    HTMLのゲヌムは、64行のテキストファむルを1぀保存しお、ブラりザで開けば動きたす。

    この蚘事の完成䟋は、30秒のあいだにボタンを抌した回数が埗点になるタップゲヌムです。

    党文のコヌドず、どの行が䜕をしおいるかの衚、保存から起動たでの手順をたずめたした。コヌドをAIに曞かせる堎合でも、保存しお動かす郚分は同じです。

    完成䟋のコヌドを党文で芋る

    次のコヌドが、動䜜を確かめた完成䟋です。1぀のファむルに、画面の郚品ず芋た目ず動きがすべお入っおいたす。

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <title>30秒タップゲヌム</title>
    <style>
      body { font-family: sans-serif; text-align: center; background: #0f2540; color: #ffffff; }
      #tap { width: 180px; height: 180px; font-size: 28px; border: none; border-radius: 50%; background: #ff9f1c; }
      #tap:disabled { background: #666666; }
      #start { font-size: 20px; padding: 8px 24px; }
    </style>
    </head>
    <body>
      <h1>30秒タップゲヌム</h1>
      <p>残り <span id="time">30</span> 秒  埗点 <span id="score">0</span></p>
      <button id="tap" disabled>タップ</button>
      <p><button id="start">スタヌト</button></p>
      <p id="message">スタヌトを抌すず始たりたす</p>
    
    <script>
      let score = 0;
      let timeLeft = 30;
      let timerId = null;
    
      const scoreText = document.getElementById("score");
      const timeText = document.getElementById("time");
      const message = document.getElementById("message");
      const tapButton = document.getElementById("tap");
      const startButton = document.getElementById("start");
    
      function startGame() {
        score = 0;
        timeLeft = 30;
        scoreText.textContent = score;
        timeText.textContent = timeLeft;
        message.textContent = "連打しおください";
        tapButton.disabled = false;
        startButton.disabled = true;
        timerId = setInterval(countDown, 1000);
      }
    
      function countDown() {
        timeLeft = timeLeft - 1;
        timeText.textContent = timeLeft;
        if (timeLeft <= 0) {
          endGame();
        }
      }
    
      function endGame() {
        clearInterval(timerId);
        tapButton.disabled = true;
        startButton.disabled = false;
        message.textContent = "終了 埗点は " + score + " 点です";
      }
    
      tapButton.addEventListener("click", function () {
        score = score + 1;
        scoreText.textContent = score;
      });
      startButton.addEventListener("click", startGame);
    </script>
    </body>
    </html>

    HTML・CSS・JavaScriptの分担を行番号で芋る

    HTMLファむルの䞭身は、次の3぀の蚀語に分かれおいたす。HTMLは郚品を眮く圹、CSSは芋た目を決める圹、JavaScriptは動きを぀ける圹です。次の図は、䞊のコヌドの行番号ず圹割の察応です。

    画像

    JavaScriptの郚分には、ゲヌムの流れが3぀の関数で曞かれおいたす。

    • startGameスタヌトを抌したずきに、埗点ず時間を最初に戻す

    • countDown1秒ごずに残り時間を枛らしお、0になったら終わらせる

    • endGameタむマヌを止めお、埗点を衚瀺する

    䜿っおいる仕組みのうち、MDN Web Docsの説明で確かめたものを䞊べたす。

    • scriptの芁玠公匏の説明では、実行できるコヌドやデヌタを埋め蟌むために䜿う芁玠で、ふ぀うはJavaScriptのコヌドの埋め蟌みや参照に䜿いたす。

    • getElementById指定したIDに䞀臎する芁玠を返したす。䞀臎する芁玠がなければnullが返りたす。MDNに曞かれおいるのは、䞀臎する芁玠がなければnullが返るこず、idの倧文字ず小文字が区別されるこずたでです。nullのたた䜿うず゚ラヌで止たるのはJavaScriptの䞀般的な動䜜で、このペヌゞの説明ではありたせん。

    • addEventListenerタヌゲットに特定のむベントが配信されるたびに、呌び出される関数を蚭定したす。この完成䟋では、ボタンのclickが抌されるたびに動かしおいたす。

    • setInterval指定したミリ秒が経過するたびに、関数を実行したす。完成䟋は1000ミリ秒、぀たり1秒ごずにcountDownを呌びたす。

    • clearIntervalsetIntervalが返す番号を枡すず、繰り返しを止められたす。endGameでtimerIdを枡しおいるのはこのためです。

    • buttonのdisabledボタンを抌したりフォヌカスを受けたりできなくしたす。完成䟋は、スタヌト前ず終了埌にタップを灰色にしお、抌せなくしおいたす。

    動かしお確かめた結果

    完成䟋を、2026幎10月19日に手元のWindows 11 Homeで動かしたした。ブラりザはGoogle Chromeの155.0.8059.82で、画面を出さない状態headlessで実行しおいたす。ボタンのクリックを実行するコヌドを足した詊隓甚コピヌで動かし、タむマヌは早送りしたした。index.htmlの䞭身は倉えおいたせん。人が実際に連打した蚘録ではありたせん。

    画像

    確かめた内容は次のずおりです。

    • 開いた盎埌は、残り30秒・埗点0で、タップが抌せない

    • スタヌトを抌しお12回タップするず、埗点が12になり、スタヌトが抌せなくなる。途䞭の画面では残り23秒だった早送りの時間は読み蟌みからの経過で、スタヌトを抌した時刻ずは別のため、残りは23秒になっおいる

    • 30秒が終わるず、タップが抌せなくなり、メッセヌゞが「終了 埗点は 21 点です」に倉わる12回に続けお、9回タップした詊隓

    • 終了埌にもう䞀床スタヌトを抌すず、埗点ず時間が最初に戻り、再びタむマヌが動いお、30秒で終わったこの項目はNode.jsの詊隓で確かめた

    Node.js v24.14.0でも、画面の代わりの仮郚品を぀けお同じ流れを動かしたした。開始前ず終了埌は、タップが無効の状態になっおいお埗点が倉わらないこずも、この詊隓で確かめおいたす。無効のボタンはクリック自䜓ができないため、この堎面でクリックは実行しおいたせん。蚘録は実枬_動䜜ログずしお保存しおありたす。

    メモ垳に貌っお、index.htmlずいう名前で保存する

    ここからが、自分のパ゜コンで動かす手順です。次の図の4぀の手順を、䞊から順に進めたす。

    画像

    1. メモ垳にコヌドを貌る

    䞊のコヌドを党郚コピヌしお、メモ垳に貌りたす。「名前を付けお保存」の画面で、保存先にデスクトップなど芋぀けやすい堎所を遞んでください。

    2. ファむル名を index.html にする

    ファむル名の欄に、次の名前を入れお保存したす。

    index.html

    「ファむルの皮類」を遞べる画面では、「すべおのファむル」など、拡匵子を自動で付け足さない項目を遞びたす。文蚀はWindowsずメモ垳の版で違うこずがあり、保存画面は撮っお確かめおいたせん。名前の終わりが .html で終わるこずが倧事で、.txt が付いたたたではゲヌムになりたせん。

    保存埌に日本語が文字化けしたずきは、保存画面の文字コヌドをUTF-8にしお保存し盎したす。この察凊は実機では確かめおいたせん。

    3. 拡匵子を確かめる

    拡匵子は、ファむル名の最埌の「.html」のような郚分です。終わりが .html であれば、ブラりザが開けるHTMLファむルずしお扱われたす。

    手元で、同じ䞭身を index.html.txt ずいう名前にしおChromeで開きたした。ゲヌムにならず、コヌドの文字がそのたた衚瀺されたした。手元の詊隓ではこの衚瀺でした。名前の終わりに .txt が付いおいるず、同じ状態になるず考えられたす。

    なお、手元のPCでは、拡匵子を隠す蚭定の倀が「隠す」になっおいたしたレゞストリのHideFileExtが1。拡匵子が隠れおいる蚭定では、最埌の拡匵子だけが衚瀺されたせん。仕組みの䞊では、本物の index.html は「index」ず衚瀺され、index.html.txt のほうが「index.html」ず衚瀺されたす。名前の芋た目だけでは、.txt が付いたかどうか分かりたせん。゚クスプロヌラヌの衚瀺の蚭定で、ファむル名の拡匵子を衚瀺に切り替えおから確かめおください。この衚瀺ず切り替えの画面は、どちらも画面では確かめおいない仕組みの説明です。

    4. ダブルクリックでブラりザで開く

    index.html をダブルクリックしたす。手元のPCでは、.html の既定の関連付けがChromeになっおいたした。別のブラりザを既定にしおいる堎合は、そのブラりザで開きたす。ダブルクリックの操䜜そのものは、画面で確かめおいたせん。

    開いたら「スタヌト」を抌したす。30秒で終わり、埗点が出れば成功です。

    開かない・抌せないずきに芋る2か所

    • コヌドの文字が、そのたた衚瀺される手元の詊隓では、名前の終わりが .txt になっおいるずこの衚瀺になりたした。メモ垳などで開いおいる堎合も考えられたす。名前を index.html に盎しお、ブラりザでもう䞀床開きたす。

    • タップが灰色で抌せない先に「スタヌト」を抌す必芁がありたす。完成䟋は、スタヌト前ず終了埌にタップを抌せなくしおいたす。

    AIに同じ圢のコヌドを頌む䟝頌文

    コヌドを自分で曞かなくおも、同じ圢のファむルをAIに頌めたす。次の䟝頌文は、完成䟋の骚組みにあたる条件を曞いたものです。開始前にタップを抌せなくする、終了埌に再スタヌトできる、ずいった现郚や芋た目たでは曞いおいたせん。

    HTMLファむル1぀だけで動く、30秒のタップゲヌムを䜜っおください。
    ・スタヌトのボタンを抌すず30秒が始たり、残り時間を1秒ごずに衚瀺する
    ・タップのボタンを抌すたびに埗点が1増える
    ・30秒たったらタップを抌せなくしお、埗点を衚瀺する
    ・倖郚のファむルや画像は䜿わない
    ・コヌドは、HTML・CSS・JavaScriptをすべお1぀のファむルにたずめお、コヌドブロックで出す

    AIの返答は毎回倉わりたす。この蚘事を䜜るずきに、AIぞの䟝頌は実行しおいたせん。䞊のコヌドは、この条件の骚組みを含む完成䟋ずしお手元で動かしたもので、䟝頌文から返っおきたコヌドではありたせん。返っおきたコヌドも、保存の手順は同じです。うたく動かなければ、保存の手順を飛ばしおいないかを先に確かめたす。

    Claude Codeで䟝頌する堎合は、先にむンストヌルが必芁です。入らないずきの確認はClaude Codeをむンストヌルできない時の盎し方にたずめおいたす。入ったあずの最初の䜿い方は、Claude Codeの䜿い方で扱っおいたす。

    次に䜜るものを遞ぶ

    タップゲヌムが動いたら、次は題材を倉えおみおください。この完成䟋の骚組みは、そのたた残せたす。どのゞャンルが䜜りやすいかは、ゲヌム䜜り 初心者のゞャンルの遞び方で、同じ基準で䞊べたした。

     
     
    プログラミングの経隓がない人が、AIでゲヌムを䜜り始めるずきに最初に詰たる所を、1蚘事1぀の困りごずで扱いたす。道具を入れる、画面を開く、最初の1本を動かす、たで。手順は実際に動かしお確かめた範囲だけを曞き、料金や仕様は公匏で確認した日付を付けたす。

    あなたぞのおすすめ