Le bingo ou le jugement final est effectué en obtenant les informations de la carte de bingo et les informations du numéro lu à partir du fichier.
Dans un jeu de bingo normal, le centre est vacant depuis le début, mais pour le moment, je ne le quitterai pas cette fois.
Carte de bingo
board.txt
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
Numéro sélectionné
selected.txt
1
7
13
19
2
3
4
Reportez-vous à cette page pour lire les fichiers [Java] Une méthode qui lit le fichier texte entier et renvoie une chaîne de caractères
-Coupez la valeur numérique du fichier avec fractionnement etc. et insérez-le dans un tableau à deux dimensions
String str = readAll("board.txt");
String[] str2 = str.split("\n");
int N = str2.length;
String[][] str4 = new String[N][N];
int[][] board = new int[N][N];
for (int i = 0; i < str2.length; i++){
str4[i] = str2[i].split(" ");
}
for (int i = 0; i < str4.length; i++){
for (int j = 0; j < str4.length; j++){
board[i][j] = Integer.parseInt(str4[i][j]);
}
}
String str3 = readAll("selected.txt");
String[] str5 = str3.split("\n");
int[] selected = new int[str5.length];
for (int i = 0; i < str5.length; i++){
selected[i] = Integer.parseInt(str5[i]);
}
・ À partir de là, passez à un autre tableau pour le jugement vertical, le jugement horizontal et le jugement diagonal.
int[][] row = new int[N][N];
int[][] col = new int[N][N];
int[][] naname = new int[2][N];
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board.length; j++) {
col[i][j] = board[j][i];
row[i][j] = board[i][j];
if (i == j) {
naname[0][i] = board[i][j];
}
if (i + j == N - 1) {
naname[1][i] = board[i][j];
}
}
}
-Préparer une méthode qui renvoie le résultat du jugement avec deux tableaux (le tableau à comparer et le tableau sélectionné) comme arguments.
public static String board(int[] board, int[] selected){
int count = 0;
for (int i = 0; i < board.length; i++){
for (int j = 0; j < selected.length; j++){
if(board[i] == selected[j]){
count++;
break;
}
}
}
if (count == board.length) {
return "Bingo";
} else if (count == board.length - 1) {
return "Reach";
} else {
return "NOT";
}
}
・ Vérifiez tous les modèles et faites le tour
int bingoNum = 0, reachNum = 0;
for (int[] i : col) {
if (check(i, selected).equals("Bingo")){
bingoNum++;
} else if (check(i, selected).equals("Reach")){
reachNum++;
}
}
for (int[] i : row) {
if (check(i, selected).equals("Bingo")){
bingoNum++;
} else if (check(i, selected).equals("Reach")){
reachNum++;
}
}
for (int[] i : naname) {
if (check(i, selected).equals("Bingo")){
bingoNum++;
} else if (check(i, selected).equals("Reach")){
reachNum++;
}
}
・ Afficher les résultats
System.out.println("BINGO:"+bingoNum+"\nREACH:"+reachNum);
・ Comment utiliser le tableau est devenu compliqué ・ Il semble y avoir un algorithme qui semble être plus efficace (comme les expressions régulières) ・ Je pense qu'écrire un si petit programme en Java est quelque chose de différent. ・ Il serait intéressant de l'implémenter dans un langage ou un algorithme différent, de définir la taille de la carte de bingo à environ 10 000 et de comparer les vitesses. ・ Il serait intéressant de simuler à l'aide de nombres aléatoires pour connaître la relation entre le nombre de portée et de bingo et la taille de la carte de bingo.
https://github.com/johejo/Bingo