System.out.println("Java学習中");

Java Silver対策 / Suno AI作曲 / 星読み×IT 💻「技術と感性」を学ぶポートフォリオブログ

【Java→JavaScript】Javaで数当てゲームを作る手順を解説

✅ はじめに

Javaの学習を始めたばかりの方にとって、

何を作ればいいのか分からない🤔

という悩みがあるのではないでしょうか?

私自身、Java Silverで学習したことを活かして 「何が作れるんだろう?」と悩んだ経験があります💦

そこで今回は、Javaの基礎文法を使いながら 「数当てゲーム」を作ってみたいと思います。

「初心者でも最後まで作り切れるシンプルなゲーム」です。

このゲームでは、以下のようなスキルが身につきます。

ランダム処理(Random)

入力処理(Scanner)

条件分岐(if文)

ループ処理(while)

メソッド設計(責務分離)

「Javaでプログラムが動く楽しさ」を体験できる最初の一歩としておすすめです。


🎮 ゲームの仕様

今回作るゲームは、とてもシンプルです。

ランダムな数(1〜100)を生成

ユーザーが数字を入力

正解かどうかを判定

ヒントを表示

正解までの回数をカウント


📌例

もっと大きいです

もっと小さいです

正解です!


⚙️ 実装の流れ

① ランダム数生成(Random)

Random random = new Random();
int answer = random.nextInt(100) + 1;

👉 1〜100ランダムな数を作っています。

② 入力処理(Scanner)

Scanner scanner = new Scanner(System.in);
int guess = scanner.nextInt();

👉 ユーザーの入力を受け取ります。

③ 判定ロジック

if (guess < answer) {
    System.out.println("もっと大きいです");
} else if (guess > answer) {
    System.out.println("もっと小さいです");
} else {
    System.out.println("正解です!");
}

👉 シンプルな条件分岐ですが、ゲームの核となる部分です。

④ 回数カウント

int count = 0;
count++;

👉 何回で当てたかを記録します。

⚠️ つまづきポイント

❓ 数値以外が入力されたら?

if (!scanner.hasNextInt()) {
    System.out.println("数字を入力してください");
    scanner.next();
    continue;
}

👉 これを入れるだけで「数字以外の入力」を受け付けなくなるため、 「実用的なプログラム」になります。

❓ 無限ループをどう書く?

while (true) {
    // 処理
}

👉 正解したら break; で抜けるのがポイントです。


🔍 設計の工夫

このゲームは1つの処理にまとめることもできますが、 今回はあえて分割します

startGame();
judge();

💡 なぜ分けるのか?

役割(責務)を分けるためです。

✅ メソッドの役割

startGame:ゲームの初期化を担当

judge:入力された数値の判定を担当

こうすることでコードが読みやすくなり、修正もしやすくなります。

今回の「数当てゲーム」のような小さなプログラムでも、 「設計」を意識することで、実務に近い書き方に一歩近づきます。

💻 完成コード

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();

        int answer = random.nextInt(100) + 1;
        int count = 0;

        while (true) {
            System.out.print("数字を入力してください: ");

            if (!scanner.hasNextInt()) {
                System.out.println("数字を入力してください");
                scanner.next();
                continue;
            }

            int guess = scanner.nextInt();
            count++;

            if (guess < answer) {
                System.out.println("もっと大きいです");
            } else if (guess > answer) {
                System.out.println("もっと小さいです");
            } else {
                System.out.println("正解です!");
                System.out.println(count + "回で当たりました!");
                break;
            }
        }

        scanner.close();
    }
}

✍️ まとめ

このゲームで学べること

ランダム処理

入力チェック

条件分岐

ループ制御

メソッド設計の考え方

まずは動かしてみることが、理解への一番の近道です。


🐶 おまけ

実はこのロジック、 JavaScriptでもほぼ同じ形で再現できます。

コンソール → ブラウザへ

Java → Webアプリへ

というステップにつながるので、 次のステップアップとしておすすめです。


🎮 デモ

実際にブラウザで遊べるデモはこちら👇

kenichikamoi.com


🎮【Javaの数当てゲームをJavaScriptに移植】シリーズまとめ

Javaのコンソールで動いていた「数当てゲーム」を、ブラウザ上で動くJavaScriptへと移植(お引っ越し)していく開発の記録です。

まずはJavaでの基本的なゲームの作り方からスタートし、いざJavaScriptへ書き換えた際に直面した思わぬバグやエラー、そしてその解決策までを綴っています。

初学者がつまずきやすい「言語の違いによる壁」をどう乗り越えたのか、プログラムと対話しながら進めたリアルな試行錯誤のプロセスをまとめてみました。


【プロフィール・作品置き場】

Javaの学習記録や、ビジュアルノベル風のオリジナルAI楽曲などをポートフォリオで公開しています!

kenichikamoi.com


Youtube(AI楽曲一覧)はこちら

www.youtube.com