2024-05-01 21:40:26 +02:00
|
|
|
import java.io.*;
|
|
|
|
|
2024-05-03 16:27:56 +02:00
|
|
|
/**
|
|
|
|
* La classe <code>Lecteur</code> est utilisée pour lire les données d'un fichier de grille.
|
|
|
|
*
|
|
|
|
* Elle comporte une méthode statique <code>lecture</code> qui prend en entrée un fichier et une grille, puis lit les données du fichier pour les stocker dans la grille.
|
|
|
|
*
|
|
|
|
* Le fichier doit contenir une grille Sudoku sous forme de chiffres, où chaque ligne représente une ligne de la grille et chaque chiffre représente une valeur dans la grille.
|
|
|
|
*
|
|
|
|
* @author Raban Hugo
|
|
|
|
* @version 5.0
|
|
|
|
*/
|
|
|
|
public class Lecteur {
|
|
|
|
/**
|
|
|
|
* Méthode statique pour lire les données d'un fichier et les stocker dans une grille.
|
|
|
|
*
|
|
|
|
* @param fichier Le fichier à lire.
|
|
|
|
* @param grille La grille dans laquelle stocker les données lues.
|
|
|
|
*/
|
|
|
|
public static void lecture(File fichier, int[][] grille) {
|
|
|
|
int[] valeurs = new int[9]; // Tableau pour stocker les valeurs lues temporairement
|
2024-05-01 21:40:26 +02:00
|
|
|
|
2024-05-03 16:27:56 +02:00
|
|
|
try {
|
|
|
|
FileInputStream fileInputStream = new FileInputStream(fichier); // Crée un flux pour lire le fichier
|
|
|
|
DataInputStream dataInputStream = new DataInputStream(fileInputStream); // Crée un flux de données pour lire les données à partir du flux de fichier
|
2024-05-01 21:40:26 +02:00
|
|
|
|
2024-05-03 16:27:56 +02:00
|
|
|
try {
|
|
|
|
// Lecture des données du fichier
|
|
|
|
for (int i = 0; i < 9; i++) {
|
|
|
|
valeurs[i] = dataInputStream.readInt(); // Lecture d'une ligne de valeurs dans le tableau temporaire
|
|
|
|
}
|
|
|
|
dataInputStream.close(); // Fermeture du flux de données
|
|
|
|
} catch (IOException e) {
|
|
|
|
System.out.println("Erreur lors de la lecture du fichier."); // Gestion des erreurs de lecture
|
|
|
|
}
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
|
System.out.println("Fichier non trouvé."); // Gestion des erreurs de fichier non trouvé
|
2024-05-01 21:40:26 +02:00
|
|
|
}
|
|
|
|
|
2024-05-03 16:27:56 +02:00
|
|
|
// Transformation des valeurs lues en tableau 2D pour la grille
|
|
|
|
for (int i = 0; i < 9; i++) {
|
|
|
|
for (int j = 8; j >= 0; j--) {
|
|
|
|
int valeurActuelle = valeurs[i] % 10; // Extrait le chiffre des unités de la valeur
|
|
|
|
valeurs[i] = (valeurs[i] - valeurActuelle) / 10; // Supprime le chiffre extrait de la valeur
|
|
|
|
grille[i][j] = valeurActuelle; // Stocke la valeur dans la grille
|
|
|
|
}
|
|
|
|
}
|
2024-05-01 21:40:26 +02:00
|
|
|
}
|
2024-05-03 16:27:56 +02:00
|
|
|
}
|