「Javaを学び始めたけど、if文やwhile文の使い道が分からない」
「簡単で楽しく、ゲーム感覚で作れるアプリが知りたい」
そんな方にぴったりなのが、数当てゲームの作成です。
このゲームでは、ランダムな数字を当てるというシンプルなルールを使って、
Javaの条件分岐・繰り返し処理・変数の扱い・ユーザー入力処理を一気に学べます。
本記事では、初心者でも無理なく取り組めるように、基本から完成コードまで丁寧に解説いたします。
数当てゲームとは何か?
遊びながら学べるJava練習用アプリ
結論:ランダムな数字を当てるゲームは、条件分岐と繰り返しの練習に最適です。
数当てゲームとは、1〜100などの範囲からランダムに選ばれた「正解の数」を、
プレイヤーが繰り返し入力して当てるゲームです。
例えば、下記のような流れで動作します。
- プログラムがランダムな数を決める(例:57)
- プレイヤーが数を入力(例:30 → 「もっと大きいです」)
- 正解まで繰り返す
このアプリでは以下のJava要素が学べます:
Scanner
によるユーザー入力Random
による乱数生成if文
による条件分岐while文
による繰り返し処理
Javaで必要な構文の準備
入力処理・乱数処理を理解しよう
結論:ScannerとRandomクラスで準備完了です。
まずは基本構文を理解しましょう。
ユーザーから入力を受け取るには
Scanner scanner = new Scanner(System.in);
int guess = scanner.nextInt();
ランダムな数を出すには
Random rand = new Random();
int answer = rand.nextInt(100) + 1; // 1〜100
これらを組み合わせることで、「プレイヤーが数を入力 → 正解か判定 → ヒント表示 → 継続」という流れを作れます。
数当てゲームの処理構造を考える
どんな順序でコードを書くべきか?
結論:最初に「答えを決め」、次に「繰り返し入力と判定」です。
- 1〜100の中で正解を決める
- プレイヤーから数を受け取る
- 答えと比較し、「大きい・小さい・正解」を表示
- 正解なら終了、間違っていれば繰り返し
この流れをwhile
文で表すことで、シンプルかつ実用的なロジックになります。
Java数当てゲームの完成コード
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回だけ使う
また、範囲を変えたい場合は以下のようにします。
int answer = rand.nextInt(50) + 51; // 51〜100の範囲に変更
応用課題に挑戦してみよう!
より実践的な機能を加えるとステップアップできる
おすすめの追加機能:
- 入力範囲外の数値にエラー表示を追加
- ヒント回数に応じた「評価」表示
- プレイヤー名の入力+再挑戦機能
完成形コードまとめ
ファイル名:GuessingGame.java
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文
を実践的に理解できる- 入力や条件式の理解が深まる
- 自分で応用・改善できる余地がある