「配列を使ったミニゲーム課題」をいくつかレベル別に提案します。ゲーム要素を取り入れると、配列の理解がぐっと楽しくなります。
初級編:じゃんけんゲーム
課題内容
- プレイヤーとコンピュータがじゃんけんをする。
- 手は
"グー","チョキ","パー"を配列に入れて管理する。 - コンピュータはランダムに選ぶ。
ヒントコード:
String[] hands = {"グー", "チョキ", "パー"};
Random rand = new Random();
int player = 0; // 0=グー, 1=チョキ, 2=パー
int computer = rand.nextInt(3);
System.out.println("あなた: " + hands[player]);
System.out.println("コンピュータ: " + hands[computer]);
Javaポイント:
- 配列で「選択肢」を管理。
- インデックスでアクセス。
中級編:数当てゲーム
課題内容
- コンピュータがランダムに 1〜10 の数字を配列に入れる。
- プレイヤーは数字を入力して当てる。
- 当たったら「正解!」、外れたら「不正解!」。
ヒントコード:
int[] numbers = new int[5];
Random rand = new Random();
// ランダムに数字を入れる
for (int i = 0; i < numbers.length; i++) {
numbers[i] = rand.nextInt(10) + 1;
}
// プレイヤー入力
Scanner sc = new Scanner(System.in);
System.out.print("数字を入力してください: ");
int guess = sc.nextInt();
// 判定
boolean hit = false;
for (int n : numbers) {
if (n == guess) {
hit = true;
break;
}
}
System.out.println(hit ? "正解!" : "不正解!");
Javaポイント:
- 配列に複数の「正解候補」を入れる。
for-eachで判定。
上級編:ビンゴゲーム風
課題内容
- 5×5 の2次元配列を作り、1〜25の数字を順番に入れる。
- プレイヤーが数字を入力すると、その数字を「0」に置き換える。
- 横一列がすべて「0」になったら「ビンゴ!」。
ヒントコード:
int[][] bingo = new int[5][5];
int num = 1;
// 初期化
for (int i = 0; i < bingo.length; i++) {
for (int j = 0; j < bingo[i].length; j++) {
bingo[i][j] = num++;
}
}
// プレイヤー入力
Scanner sc = new Scanner(System.in);
System.out.print("数字を入力してください: ");
int guess = sc.nextInt();
// 数字を探して0に置き換え
for (int i = 0; i < bingo.length; i++) {
for (int j = 0; j < bingo[i].length; j++) {
if (bingo[i][j] == guess) {
bingo[i][j] = 0;
}
}
}
// 横一列チェック
for (int i = 0; i < bingo.length; i++) {
boolean bingoLine = true;
for (int j = 0; j < bingo[i].length; j++) {
if (bingo[i][j] != 0) {
bingoLine = false;
break;
}
}
if (bingoLine) {
System.out.println("ビンゴ!");
}
}
Javaポイント:
- 2次元配列で「盤面」を表現。
- 入力値を検索して更新。
- 条件判定で「勝ち」を決める。
✅ まとめ
- 初級: 配列で選択肢を管理(じゃんけん)。
- 中級: 配列で複数の答えを持つ(数当て)。
- 上級: 2次元配列で盤面を表現(ビンゴ)。
👉 次のステップとして「配列+ループでゲーム進行を繰り返す」や「配列+条件分岐で勝敗判定を複雑化する」に挑戦すると、さらにゲームらしくなります。
