【Java入門】数当てゲームの作り方完全ガイド|初心者向けコード付き解説

プログラミング

「Javaを学び始めたけど、if文やwhile文の使い道が分からない」
「簡単で楽しく、ゲーム感覚で作れるアプリが知りたい」
そんな方にぴったりなのが、数当てゲームの作成です。

このゲームでは、ランダムな数字を当てるというシンプルなルールを使って、
Javaの条件分岐・繰り返し処理・変数の扱い・ユーザー入力処理を一気に学べます。

本記事では、初心者でも無理なく取り組めるように、基本から完成コードまで丁寧に解説いたします。


数当てゲームとは何か?

遊びながら学べるJava練習用アプリ

結論:ランダムな数字を当てるゲームは、条件分岐と繰り返しの練習に最適です。

数当てゲームとは、1〜100などの範囲からランダムに選ばれた「正解の数」を、
プレイヤーが繰り返し入力して当てるゲームです。

例えば、下記のような流れで動作します。

  • プログラムがランダムな数を決める(例:57)
  • プレイヤーが数を入力(例:30 → 「もっと大きいです」)
  • 正解まで繰り返す

このアプリでは以下のJava要素が学べます:

  • Scannerによるユーザー入力
  • Randomによる乱数生成
  • if文による条件分岐
  • while文による繰り返し処理

Javaで必要な構文の準備

入力処理・乱数処理を理解しよう

結論:ScannerとRandomクラスで準備完了です。

まずは基本構文を理解しましょう。

ユーザーから入力を受け取るには

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

ランダムな数を出すには

1
2
Random rand = new Random();
int answer = rand.nextInt(100) + 1; // 1〜100

これらを組み合わせることで、「プレイヤーが数を入力 → 正解か判定 → ヒント表示 → 継続」という流れを作れます。


数当てゲームの処理構造を考える

どんな順序でコードを書くべきか?

結論:最初に「答えを決め」、次に「繰り返し入力と判定」です。

  1. 1〜100の中で正解を決める
  2. プレイヤーから数を受け取る
  3. 答えと比較し、「大きい・小さい・正解」を表示
  4. 正解なら終了、間違っていれば繰り返し

この流れをwhile文で表すことで、シンプルかつ実用的なロジックになります。


Java数当てゲームの完成コード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Random;
import java.util.Scanner;
 
public class GuessingGame {
    public static void main(String[] args) {
        Random rand = new Random();
        int answer = rand.nextInt(100) + 1;
        Scanner scanner = new Scanner(System.in);
        int guess = 0;
        int tries = 0;
 
        System.out.println("1〜100の数を当ててください!");
 
        while (guess != answer) {
            System.out.print("数を入力:");
            guess = scanner.nextInt();
            tries++;
 
            if (guess < answer) {
                System.out.println("もっと大きい数です。");
            } else if (guess > answer) {
                System.out.println("もっと小さい数です。");
            } else {
                System.out.println("正解です! 試行回数:" + tries);
            }
        }
 
        scanner.close();
    }
}

よくあるミスと改善ポイント

プログラムが止まる・繰り返しが動かないとき

結論:条件式や入力型のミスが多いです。

以下の点に注意しましょう:

  • whileの条件式に「!=」を正しく使う
  • nextInt()で例外が起きる場合、文字列を入力していないか確認
  • scanner.close()は最後に1回だけ使う

また、範囲を変えたい場合は以下のようにします。

1
int answer = rand.nextInt(50) + 51; // 51〜100の範囲に変更

応用課題に挑戦してみよう!

より実践的な機能を加えるとステップアップできる

おすすめの追加機能:

  • 入力範囲外の数値にエラー表示を追加
  • ヒント回数に応じた「評価」表示
  • プレイヤー名の入力+再挑戦機能

完成形コードまとめ

ファイル名:GuessingGame.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Random;
import java.util.Scanner;
 
public class GuessingGame {
    public static void main(String[] args) {
        Random rand = new Random();
        int answer = rand.nextInt(100) + 1;
        Scanner scanner = new Scanner(System.in);
        int guess = 0;
        int tries = 0;
 
        System.out.println("1〜100の数を当ててください!");
 
        while (guess != answer) {
            System.out.print("数を入力:");
            guess = scanner.nextInt();
            tries++;
 
            if (guess < answer) {
                System.out.println("もっと大きい数です。");
            } else if (guess > answer) {
                System.out.println("もっと小さい数です。");
            } else {
                System.out.println("正解です! 試行回数:" + tries);
            }
        }
 
        scanner.close();
    }
}

まとめ:Java入門者に最適な学習素材

数当てゲームは、Javaの基本を楽しく学べる課題です。

  • if文while文を実践的に理解できる
  • 入力や条件式の理解が深まる
  • 自分で応用・改善できる余地がある

タイトルとURLをコピーしました