Skip to content
Snippets Groups Projects
Crossword.java 2.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alexis Nasr's avatar
    Alexis Nasr committed
    import java.util.Scanner;
    import java.io.*;
    
    /**
     * Class Crossword : Creates a 2D array of characters read from the input file
     */
    
    public class Crossword
    {
       private char array[][]; 	// Tableaux 2D contenant les caractères
       private int rows;      	// Nombres de lignes de array 
       private int columns;		// Nombres de colonnes de array
       
       private int WordCount;   // Nombre d'occurences d'un mot
       private int PositionX;	// Colonne de début du mot
       private int PositionY;	// Ligne de début du mot
       private int EndX;		// Colonne de fin du mot 
       private int EndY;		// Ligne de fin du mot 
       
          
       /*** Constructor: Reads each line from File <file> and writes to a new row in the array. 
        ** Updates <rows> and <columns> to height and width of the array. */
       public Crossword(File file) throws IOException {
    
    	   // Code pour calculer la taille du tableau et initialiser les variables d'instance "rows" et "columns"
    	   
    	   // Code pour créer le tableau "array"
    	   
    	   // Code pour remplir "array" avec les caractères du Fichier "file" 
    	   
    	   }
    
       
       /*** Methode Search(String) : Trouver le premier occurence du mot <word> dans le Tableau 
        *** Si touver, mettre à jour les valeurs (PositionY, PositionX, EndY, EndX)*/
       
       public boolean search(String word) {
    
    	   // Verifier que le taile du mot "word" est supérieure à zero. Sinon rien à faire.
    	   
    	   // Chercher le premier caractère du mot "word" dans le tableau array. 
    	   // Si array[i][j] contient ce caractère, alors le mot peut apparaître dans le même ligne, 
    	   // ou dans le même colonne. Utiliser les methodes SearchRow() ou searchColumn() selon le cas.
    	   
    	   return false; // mot pas trouvé
       }
       
       /* Methode Interne SearchRow(int,int, String) : Cherche une ligne du tableaux pour le mot <word> à partir de array[y][x] */
       
       private boolean searchRow(int y, int x, String word) {
    
    	   // Ecrire code ici  ...
    	   return false;
       }
       
       /* Methode Interne SearchRow(int,int, String) : Cherche une colonne du tableaux pour le mot <word> à partir de array[y][x] */
       
       private boolean searchColumn(int y, int x, String word) {
    
    	   // Ecrire code ici ...
    	   return false;
       }
    
       /*** Methode pour visualiser le tableau. (Déjà fourni) */
       public void display() {
    	   if (rows>0 && columns>0)
    		   CrosswordGUI.display(array);  
    	   else 
    		   System.out.println("Error: Array is Empty.");
       }
    
       /*** Methode pour visualiser le tableau avec le mot en surbrillance. (Déjà fourni) */
       public void displayWord() {
    		if ((PositionX<0) || (PositionX>EndX) || (EndX>=columns)) {
    			System.out.println("Error: Incorrect x-coordinates for Word");
    			return;
    		}
    		if ((PositionY<0) || (PositionY>EndY) || (EndY>=rows)) {
    			System.out.println("Error: Incorrect y-coordinates for Word");
    			return;		
    		}
    		CrosswordGUI.display(array, PositionY, PositionX, EndY, EndX);  
       }
       
    }