Programme informatique XXXXXXXXXXP26-GG Programmation objet I Hiver 2021 Projet 2 Les mots cachés Date de remise La remise se fait en deux temps : • Première partie : o mercredi 14 avril 2021 à 23h55...

1 answer below »
A java project


Programme informatique 420-P26-GG Programmation objet I Hiver 2021 Projet 2 Les mots cachés Date de remise La remise se fait en deux temps : • Première partie : o mercredi 14 avril 2021 à 23h55 o via Léa (pas de Mio) aucun retard accepté (même pas une seconde) o opérations surlignées en jaune dans cet énoncé o vous pourrez quand même apporter des modifications dans le projet final, mais ça doit être complet o pénalité jusqu’à 30% si pas remis ou incomplet. • Deuxième partie (projet complet): o mercredi 28 avril 2021 à 23h55 o Pour la remise finale, une pénalité de 10% s’applique pour chaque jour de retard (max. 40%). Après 4 jours de retard, la note est 0. Objectifs d’apprentissage • Gérer les exceptions • Utiliser la classe String • Utiliser les tableaux à deux dimensions • Utiliser la classe ArrayList Type d’évaluation Sommative (10 % de la note du cours) Consignes : • Un projet INCOMPLET ou un projet qui ne compile pas entraîne automatiquement la note 0 (pour le projet 1, j’ai été tolérant, mais pas cette fois). Il est donc préférable de remettre un projet en retard qu’un projet incomplet. Par INCOMPLET, j'entends quelque chose qui ne fonctionne pas du tout ou qui n'est qu'une ébauche de programme. Vous n'aurez pas de Projet 2 Hiver 2021 Page 2 sur 8 points seulement pour fournir des lignes de code. Ça doit ressembler à un projet complet qui fait à peu près ce qui est demandé. • Respectez les spécifications à la lettre et n’ajoutez pas d’éléments qui ne sont pas spécifiés dans l’énoncé, sous peine de pénalités. • Commentez judicieusement votre code et toutes vos variables. Utilisez des identificateurs significatifs. • Le non-respect des normes entraîne très rapidement une pénalité de 20%. • La validité du code et le fonctionnement sont évalués surtout en utilisant le programme. Vous n’obtenez donc aucun point pour le code non fonctionnel. De plus, si un bogue ou un code non fonctionnel m’empêche d’utiliser d’autres parties du programme, vous ne pourrez pas obtenir de points pour ces parties. • Toutes les variables d’instance doivent être private • Vous devez respecter les noms de classes, méthodes, variables et type de données demandés et faire les traitements demandés dans les classes spécifiées. Toutes les sorties doivent être bien formatées et alignées comme dans les exemples et toutes les exceptions et conditions d’erreur doivent être gérées et affichées avec un message détaillé . Ne prenez rien pour acquis… Votre programme ne doit pas se terminer en cas d’erreur, mais doit revenir au menu. Barème classe EnumDirection 10 classe Mot 5 classe GrilleJeu - constructeur 25 classe GrilleJeu afficherGrilleInitiale afficherGrilleFinale afficherMots 5 classe GrilleJeu - trouverMots 40 classe GrilleJeu - trouverMotMystere 5 classe Principale 10 Bonus : affichage des conditions d’erreur uniquement à partir de la classe Principale par les mécanismes des exceptions (pas d’affichage d’erreurs dans les autres classes) 20 Pénalités : remise de la première partie incomplète ou en retard jusqu’à -30 remise du projet complet en retard jusqu’à -40 projet incomplet, plante, ne compile pas jusqu’à -100 non respect des normes de programmation jusqu’à -20 mauvaise présentation du code jusqu’à -20 non respect de l’énocé, ajout de fonctionnalités, etc jusqu’à -100 Projet 2 Hiver 2021 Page 3 sur 8 Énoncé du problème Il s’agit de concevoir et d’implanter la solution du jeu de mots cachés. Le travail consiste à retrouver un ensemble de mots donnés dans une grille. Les mots peuvent être lus de bas en haut, de haut en bas, de gauche à droite, de droite à gauche et suivant les diagonales. Lorsque tous les mots de la liste ont été trouvés, il demeure des lettres libres dans la grille. Ces lettres constituent les mots cachés ou le mot mystère. Une lettre de la grille peut faire partie de plus d’un mot. Répertoire des fichiers de données Un répertoire nommé « grilles », directement dans votre répertoire de projet, contient les grilles de jeu : Vous devez prévoir (et afficher) les cas d’erreur : • le répertoire « grilles » n’existe pas • il est vide • il contient des répertoires • etc. Structure des fichiers de données Un fichier de données contient : - Le nombre de colonnes et de lignes de la grille, séparés par une virgule, sur la 1ere ligne - La grille de caractères : o Chaque ligne contient un nombre de lettres minuscule ou majuscule (correspondant au nombre de colonnes spécifié à la ligne 1), de A à Z uniquement, spéparés par au moins un espace o Le nombre de ligne définissant la grille correspondant au nombre de lignes spécifié à la ligne 1 - Une liste de mots à trouver, un mot par ligne. Vous n’avez pas à valider la structure d’un mot. On ne tient pas compte de la casse (majuscules / minuscules) : « abe » est la même chaîne que « ABC » dans ce projet. Il n’y a pas de caractères spéciaux ou accentués. Vous devez prévoir et signaler tous les cas d’erreur dans votre application: • Nombre de lignes ou de colonnes ne correspondent pas à la première ligne • La grille contient des caractères invalides • Le fichier est vide Projet 2 Hiver 2021 Page 4 sur 8 • La grille de caractères contient des chaînes de plus de 1 caractères • Un mot ne se retrouve pas dans la grille (condition d’erreur à signaler lorsque vous programmerez la méthode trouverMots) • Etc. Exemple de fichier (grille1.txt): 12,12 B P O I V R O N I E E N P A M P L E M O U S S E U O H C S A E K L I I U O P O I R E L I M E R G L A I T U E O W S M E N A V O C A T N I E N C A T T C O N C O M B R E M N E E R C B E S A A M S A I L T M I M P N I M I C O E A A N A N A S O D A B R I C O T R N I P A T F I G U E A N E N T R abricot ail ananas avocat banane cantaloup cerise celeri chou concombre figue framboise kiwi laitue lime mangue melon pamplemousse poire poivron pomme radis raisin Les coordonnées d’une lettre dans la grille sont représentées par un couple d’entier (x, y) indiquant que la lettre est dans la colonne x et la ligne y. L’origine de la grille est (0, 0), soit le coin supérieur gauche. La position d’un mot dans la grille est exprimée par les coordonnées de sa première lettre et de sa direction. Par exemple, la position du mot « FRAMBOISE » est : (1, 11) direction « Nord Est ». x y (0, 0) Projet 2 Hiver 2021 Page 5 sur 8 Votre projet doit contenir au moins les éléments suivants : - La classe EnumDirection pour les différentes directions, qui doit contenir au moins les attributs et suivants : o Le nom de la direction (exemple : Nord Ouest) o Les deux valeurs entières qui permettent le déplacement dans la grille selon la direction choisie (exemple (-1,-1) pour Nord Ouest). Vous pouvez utiliser une variable de type Point (de Java.awt) pour entreposer ces deux valeurs. La classe EnumDirection doit aussi contenir les méthodes et constructeur requis pour une utilisation adéquate dans le projet. Vous pouvez mettre seulement le minimum pour la première remise pour que la classe Mot compile. - La classe Mot qui contient au moins les éléments suivants : o Les variables d’instance :  private String strMot pour entreposer la chaine de caractères qui correspond au mot  private EnumDirection direction pour entreposer la direction du mot.  position pour entreposer les coordonnées du mot dans la grille. Vous pouvez utiliser le type Point (de Java.awt), par exemple private Point position o Les méthodes suivantes :  Un constructeur qui initialise la valeur strMot à celle reçue en argument  public String toString() qui donne une version affichable d’un mot et qui respecte le format d’affichage (voir l’exemple ci-dessous)  Les accesseurs et modificateurs nécessaires (get et set) - La classe GrilleJeu qui contient au moins les éléments suivants : o Les variables d’instance :  private char[][] tabLettres : un tableau à deux dimensions pour entreposer les lettres de la grille. Donc un tableau de char[][] de la taille exacte de la grille traitée.  private ArrayList arrMots: un arrayList d’éléments de type Mot pour entreposer la liste des mots. o Les méthodes suivantes :  Un constructeur qui prend en argument un fichier de données et qui remplit le tableau tabLettres et l’arrayList arrMots Projet 2 Hiver 2021 Page 6 sur 8  public void afficherGrilleInitiale(): permet de visualiser la grille initiale (tabLettres)  public void afficherGrilleFinale(): affiche la grille initiale où tous les caractères des mots trouvés sont remplacés par le caractère '-'  public void afficherMots(): affiche la liste des mots
Answered 1 days AfterApr 28, 2021

Answer To: Programme informatique XXXXXXXXXXP26-GG Programmation objet I Hiver 2021 Projet 2 Les mots cachés...

Mohd answered on Apr 30 2021
151 Votes
Solution/Project 2/.classpath

    
        
            
        
    
    
    
Solution/Project 2/.project

     Project 2
    
    
    
    
        
             org.eclipse.jdt.core.javabuilder
            
            
        
    
    
         org.eclipse.jdt.core.javanature
    
Solution/Project 2/bin/EnumDirection.class
Solution/Project 2/bin/GrilleJeu.class
Solution/Project 2/bin/Mot.class
Solution/Project 2/bin/Principale.class
Solution/Project 2/grille1.txt
12,12
B P O I V R O N I E E N
P A M P L E M O U S S E
U O H C S A E K L I I U
O P O I R E L I M
E R G
L A I T U E O W S M E N
A V O C A T N I E N C A
T T C O N C O M B R E M
N E E R C B E S A A M S
A I L T M I M P N I M I
C O E A A N A N A S O D
A B R I C O T R N I P A
T F I G U E A N E N T R
abricot
ail
ananas
avocat
banane
cantaloup
cerise
celeri
chou
concombre
figue
framboise
kiwi
laitue
lime
mangue
melon
pamplemousse
poire
poivron
pomme
radis
raisin
Solution/Project 2/Grilles/grille1.txt
12,12
B P O I V R O N I E E N
P A M P L E M O U S S E
U O H C S A E K L I I U
O P O I R E L I M E R G
L A I T U E O W S M E N
A V O C A T N I E N C A
T T C O N C O M B R E M
N E E R C B E S A A M S
A I L T M I M P N I M I
C O E A A N A N A S O D
A B R I C O T R N I P A
T F I G U E A N E N T R
abricot
ail
ananas
avocat
banane
cantaloup
cerise
celeri
chou
concombre
figue
framboise
kiwi
laitue
lime
mangue
melon
pamplemousse
poire
poivron
pomme
radis
raisin
Solution/Project 2/Grilles/grille2.txt
10,15
E E V I S S I M D N O F O R P
V S S P E V O Y A G E S U A P
N I S B E R E V E R T U E U X
O O R A C J I N F I C O N R D
I N D G O G O U P A N H I U T
S E E U U U R U D B A N A N E
A G C E T L L U R E R T M N G
C A R T E E E P E N S I O N D
C R E T R U E H C O A I D E U
O O T E V I V A C E C L R E B
BAGUETTE
BANANE
BRIDE
BUDGET
COEUR
COSTAUD
DECRET
DESIR
DOMAINE
ECOUTER
GENOISE
GENOU
HEURTER
JOURNAL
MARCHAND
MISSIVE
NAVIGUER
NOCIF
OCCASION
ORAGE
PAUSE
PENSION
PROFOND
SAOUL
SEDUIRE
STIPULER
VERTUEUX
VIRGULE
VIVACE
VOYAGE
Solution/Project 2/Grilles/grille3.txt
15, 15
V E V E R A N D A M E H C S X
V E N A L U U A E S I B S D E
A E R I F B O E I P O C M M D
C I V R E R I B L I O A U O N
C I L P U V A C M R G S I M I
C O T E O E N I B A C C P I A
M C U A R R N U S L T A E E T
E A M P D O T I E E T D B R E
G R R U O E N I M H O E E I G
A U B M I L L I O N L R T F A
R E E A I D E L C N U E O R P
A T P I S T O L E T O I N I L
G O U L A G E P H U G V A C A
E M E V I V N O C O C I I H C
L E S E I D O L E M X V P E E
AILERON
ALPAGE
BETON
BISEAU
CABINE
CASCADE
CIBLE
CITADELLE
CIVIL
COCON
CONVIVE
COPIE
COUPOLE
DIESEL
ECHEC
ETAIN
FRAISE
FRICHE
GARAGE
GOULAG
GOULOT
GREC
INDEX
MAGASIN
MARMITE
MELODIE
MILLION
MINEUR
MOMIE
MOTEUR
MUSCLE
PATHOLOGIE
PIANO
PISTOLET
PLACE
PODIUM
PORTION
SABRE
SCHEMA
SCORBUT
SPIRALE
TAMBOUR
VEINE
VENAL
VERANDA
VERRUE
VIVIER
Solution/Project 2/Grilles/grille4.txt
12, 12
M C O N S O M S O C S T
S A M E R C U R E S O U
G T R E U E T E N A L P
A P E S A N T E U R E M
L N H T A O I I T O I O
A U G A I T S V P S L C
X F N L S L U U E U L O
I U E E E E L R N R J M
E S U E L U B E N E S E
L E A N A V E T T E V T
M E T E O R E S P A C E
T I E R E I T A M O S N
ANGLE
APESANTEUR
COMETE
COMPUT
COSMOS
ESPACE
ETOILE
FUSEE
GALAXIE
JUPITER
LUNE
MARS
MATIERE
MERCURE
METEORE
NAVETTE
NEBULEUSE
NEPTUNE
PHASE
PLANETE
SAROS
SATELLITE
SATURNE
SOLEIL
UNIVERS
VENUS
Solution/Project 2/Grilles/grille5.txt
12, 12
D A J T T R O N C H L S
E P L O M B O U R S E U
V E E A U B E R G E E R
O N A Q N R A E N L C I
I I L O U E N D B O A M
R B B T E I O A G V N I
I M U T R L P C L E A C
E O M A O E G E H N R H
B C M R E T S U G E D E
O O I F L A M M E B R M
R E S S A R C I N V O I
T I M B R E F U S E A N
ALBUM
ATELIER
AUBERGE
AVEUGLE
BADGE
BENEVOLE
BLEU
BONBON
BOURSE
BOUTURE
CANARD
CHEMIN
CHERI
COMBINE
CRASSE
DEGUSTER
DEVOIR
ENDOLORI
EQUIPE
FLAMME
JOURNAL
OBEIR
OVNI
PLOMB
REFUS
ROMARIN
SURIMI
TIMBRE
TRONC
Solution/Project 2/Grilles/grille6.txt
15, 15
S E L A T E P B E N J O I N E
I P D H E R B E V L A T N A S
I L A N Y F E E U Q S U M H U
V L O R A G R U M E M L E U F
E A U R F V G A A N I U T I F
T T N O E U A N G D N C T L I
I G N I H N M L I R A C E E D
V S N A L C O S O R A Y V N L
E E A B N L T C D F A N I I A
R N M S L I E A L G L M C S R
E T B O L A M O P N O U O E O
G E R L C O L O G N E M I R L
U U E U M R U E D O I G M D F
O R I E N T A L A M B I C E E
F R A I S N E C N E C O R C E
ABSOLUE
AGRUME
ALAMBIC
AMBRE
BENJOIN
BERGAMOTE
CARDAMOME
CEDRE
CIVETTE
COLOGNE
CORNUE
DIFFUSE
DISTILLER
DOMINANTE
ECORCE
ENCENS
FLORAL
FLUIDE
FOUGERE
FRAGRANCE
FRAIS
GOMME
HERBE
HUILE
JASMIN
LAVANDE
MIMOSA
MUSQUE
NEROLI
ODEUR
OLFACTIF
ORIENTAL
PARFUM
PATCHOULI
PETALES
RESINE
ROMARIN
SANTAL
SENTEUR
VANILLE
VERVEINE
VETIVER
Solution/Project 2/Grilles/grille7.txt
15, 15
A B D O M E N M O E X P I B I
R I O T I B U S E E G E B O T
S U N I M R E T D R R P I N E
U A N F O R A N I M A L L U M
B M I F A P I N V C T U...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here