Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class bingo2_Piccolo {
  4. public static int[][] getArray(int row, int column) {
  5. int[][] matrix = new int[row][column]; // bingo card
  6. int[] numbersList = new int[75]; // numbers available for use
  7. int[] calledNumbers = new int[25]; // log of used numbers
  8.  
  9. // fill list
  10. for (int i = 0; i < numbersList.length; i++) {
  11. numbersList[i] = i + 1;
  12. }
  13.  
  14. // create matrix
  15. for (int i = 0, limit = 15; i < matrix.length; i++, limit += 15) {
  16. int count = 0;
  17.  
  18. // track used numbers
  19. for (int j = 0; j < matrix.length; j++, count++) {
  20. int call;
  21.  
  22. do {
  23. call = (int) ((Math.random() * limit) + 1);
  24. for (int k = 0; k <= count; k++) {
  25. if (calledNumbers[k] == call)
  26. call = -1;
  27. }
  28. } while (call < limit - 15);
  29.  
  30. calledNumbers[count] = call;
  31. matrix[j][i] = numbersList[call - 1];
  32. }
  33. }
  34. // free space
  35. matrix[2][2] = 0;
  36. return matrix;
  37. }
  38. public static int[][] linearSearch(int key, int[][] matrix) {
  39. for (int i = 0; i < matrix.length; i++) {
  40. for (int j = 0; j < matrix[i].length; j++) {
  41. if (key == matrix[i][j]) {
  42. matrix[i][j] = 0;
  43. }
  44. }
  45. }
  46. return matrix;
  47. }
  48. public static boolean checkIfBingo(int[][] matrix) {
  49. // vertical bingo
  50. for (int i = 0; i < 5; i++){
  51. int sum = 0;
  52.  
  53. for( int j = 0; j < 5; j++){
  54. sum += matrix[j][i];
  55. }
  56. if(sum == 0){
  57. return true;
  58. }
  59. }
  60. // horizontal bingo
  61. for (int i = 0; i < 5; i++) {
  62. int sum = 0;
  63.  
  64. for (int j = 0; j < 5; j++) {
  65. sum += matrix[i][j];
  66. }
  67. if (sum == 0) {
  68. return true;
  69. }
  70. }
  71. // diagonal bingo
  72. if (matrix[0][0] == 0 && matrix[1][1] == 0 && matrix[3][3] == 0 && matrix[4][4] == 0)
  73. return true;
  74. if (matrix[4][0] == 0 && matrix[3][1] == 0 && matrix[1][3] == 0 && matrix[0][4] == 0)
  75. return true;
  76. return false;
  77. }
  78. public static void printMatrix(int column, int[][] matrix) {
  79. // print board game
  80. for (int i = 0; i < matrix.length; i++) {
  81. for (int j = 0, count = 0; j < matrix.length; j++) {
  82. if (count % column == 0)
  83. System.out.println();
  84. System.out.printf("%-5d", matrix[i][j]);
  85. count++;
  86. }
  87. }
  88. }
  89. public static void printArray(char[] array) {
  90. // print character array
  91. for (int e : array) {
  92. System.out.printf("%-5c", e);
  93. }
  94. }
  95. public static void bingoGame(int[][] bingoCard){
  96. Scanner userinput = new Scanner(System.in);
  97. boolean bingo;
  98.  
  99. do{
  100. // recieve number call
  101. System.out.println("Enter the called number: ");
  102. int key = userinput.nextInt();
  103.  
  104. // end if sentinel value
  105. if (key == -1)
  106. return;
  107.  
  108. // replace match with zero
  109. linearSearch(key, bingoCard);
  110.  
  111. // check if bingo
  112. bingo = checkIfBingo(bingoCard);
  113.  
  114. }while (!bingo);
  115.  
  116. System.out.println("\nBINGO!");
  117. printArray(new char[]{'B','I', 'N', 'G' ,'O'});
  118. printMatrix(5, bingoCard);
  119. }
  120. public static void main (String[]args){
  121. int[][] bingoCard;
  122.  
  123. // initialize card
  124. System.out.println("Here is your card! \n");
  125. bingoCard = getArray(5, 5);
  126.  
  127. // print card
  128. printArray(new char[]{'B','I', 'N', 'G' ,'O'});
  129. printMatrix(5, bingoCard);
  130. System.out.println("\n");
  131.  
  132. //play game
  133. bingoGame(bingoCard);
  134. }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement