Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class bingo2_Piccolo {
- public static int[][] getArray(int row, int column) {
- int[][] matrix = new int[row][column]; // bingo card
- int[] numbersList = new int[75]; // numbers available for use
- int[] calledNumbers = new int[25]; // log of used numbers
- // fill list
- for (int i = 0; i < numbersList.length; i++) {
- numbersList[i] = i + 1;
- }
- // create matrix
- for (int i = 0, limit = 15; i < matrix.length; i++, limit += 15) {
- int count = 0;
- // track used numbers
- for (int j = 0; j < matrix.length; j++, count++) {
- int call;
- do {
- call = (int) ((Math.random() * limit) + 1);
- for (int k = 0; k <= count; k++) {
- if (calledNumbers[k] == call)
- call = -1;
- }
- } while (call < limit - 15);
- calledNumbers[count] = call;
- matrix[j][i] = numbersList[call - 1];
- }
- }
- // free space
- matrix[2][2] = 0;
- return matrix;
- }
- public static int[][] linearSearch(int key, int[][] matrix) {
- for (int i = 0; i < matrix.length; i++) {
- for (int j = 0; j < matrix[i].length; j++) {
- if (key == matrix[i][j]) {
- matrix[i][j] = 0;
- }
- }
- }
- return matrix;
- }
- public static boolean checkIfBingo(int[][] matrix) {
- // vertical bingo
- for (int i = 0; i < 5; i++){
- int sum = 0;
- for( int j = 0; j < 5; j++){
- sum += matrix[j][i];
- }
- if(sum == 0){
- return true;
- }
- }
- // horizontal bingo
- for (int i = 0; i < 5; i++) {
- int sum = 0;
- for (int j = 0; j < 5; j++) {
- sum += matrix[i][j];
- }
- if (sum == 0) {
- return true;
- }
- }
- // diagonal bingo
- if (matrix[0][0] == 0 && matrix[1][1] == 0 && matrix[3][3] == 0 && matrix[4][4] == 0)
- return true;
- if (matrix[4][0] == 0 && matrix[3][1] == 0 && matrix[1][3] == 0 && matrix[0][4] == 0)
- return true;
- return false;
- }
- public static void printMatrix(int column, int[][] matrix) {
- // print board game
- for (int i = 0; i < matrix.length; i++) {
- for (int j = 0, count = 0; j < matrix.length; j++) {
- if (count % column == 0)
- System.out.println();
- System.out.printf("%-5d", matrix[i][j]);
- count++;
- }
- }
- }
- public static void printArray(char[] array) {
- // print character array
- for (int e : array) {
- System.out.printf("%-5c", e);
- }
- }
- public static void bingoGame(int[][] bingoCard){
- Scanner userinput = new Scanner(System.in);
- boolean bingo;
- do{
- // recieve number call
- System.out.println("Enter the called number: ");
- int key = userinput.nextInt();
- // end if sentinel value
- if (key == -1)
- return;
- // replace match with zero
- linearSearch(key, bingoCard);
- // check if bingo
- bingo = checkIfBingo(bingoCard);
- }while (!bingo);
- System.out.println("\nBINGO!");
- printArray(new char[]{'B','I', 'N', 'G' ,'O'});
- printMatrix(5, bingoCard);
- }
- public static void main (String[]args){
- int[][] bingoCard;
- // initialize card
- System.out.println("Here is your card! \n");
- bingoCard = getArray(5, 5);
- // print card
- printArray(new char[]{'B','I', 'N', 'G' ,'O'});
- printMatrix(5, bingoCard);
- System.out.println("\n");
- //play game
- bingoGame(bingoCard);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement