/*--------- Ex8_6.java Bingo! ----------*/ package jp_bunkyo; import java.util.Scanner; import java.util.Random; public class Ex8_6 { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); Random rnd = new Random(); int[][] bingo = new int[5][5]; int[] ball = new int[25]; int i, j, k, x1, y1, x2, y2, tmp; for (i = 0; i < 5; i++) { // Bingoマスの初期化 for (j = 0; j < 5; j++) { bingo[i][j] = 5*i+j + 11; // 11,12,13,...,35を順に代入 } } for (i = 0; i < 25; i++) { // Ballの初期化 ball[i] = i + 11; // 11,12,13,...,35を順に代入 } for (k = 0; k < 10000; k++) { // シャッフル x1 = rnd.nextInt(5); // BingoCard 交換元マスの位置座標 (x1, y1) y1 = rnd.nextInt(5); x2 = rnd.nextInt(5); // BingoCard 交換先マスの位置座標 (x2, y2) y2 = rnd.nextInt(5); tmp = bingo[x1][y1]; // bingo[x1][y1] と bingo[x2][y2]を交換 swap bingo[x1][y1] = bingo[x2][y2]; bingo[x2][y2] = tmp; x1 = rnd.nextInt(25); // ballの交換元の位置 x1 x2 = rnd.nextInt(25); // ballの交換先の位置 x2 tmp = ball[x1]; // ball[x1] と ball[x2] を交換 swap ball[x1] = ball[x2]; ball[x2] = tmp; } // Bingo Game 開始 System.out.println("------- Bingo Game ! -------"); for (k = 0; k < 25; k++ ) { // 最大25回繰り返し System.out.println(" 第" + k + "回目の当たり数字は…… " + ball[k]); for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { if ( bingo[i][j] == ball[k] ) { bingo[i][j] = 99; // bingoシートの当たり数字を[99]に変更 } } } for (i = 0; i < 5; i++) { // Bingoシートの表示 for (j = 0; j < 5; j++) { if ( bingo[i][j] == 99 ) { // すでに当たりのマス目なら「●」を表示 System.out.print("|●"); } else { // それ以外は数字を表示 System.out.print("|" + bingo[i][j]); } } System.out.println("|\n----------------"); } System.out.print(" ビンゴ? (y / n) > "); if ( stdin.nextLine().charAt(0) == 'y') { System.out.println("\n★☆★ Bingo! Congratulations ☆★☆"); return; } // for (i = 0; i < 25; i++) { // Ball の表示 // System.out.print(" " + ball[i]); // } // System.out.println(); } } }