Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

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 »
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
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 pou
ez 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 A
ayList

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 pou
ez 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’e
eur 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’e
eur, mais doit revenir au menu.

Barème
classe EnumDirection 10
classe Mot 5
classe GrilleJeu - constructeur 25
classe GrilleJeu afficherGrilleInitiale
XXXXXXXXXXafficherGrilleFinale
XXXXXXXXXXafficherMots
5
classe GrilleJeu - trouverMots 40
classe GrilleJeu - trouverMotMystere 5
classe Principale 10

Bonus :
affichage des conditions d’e
eur uniquement à partir de la classe
Principale par les mécanismes des exceptions (pas d’affichage
d’e
eurs dans les autres classes)
20
Pénalités :
emise de la première partie incomplète ou en retard jusqu’à -30
emise 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 li
es 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’e
eur :
• 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 nom
e 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 nom
e de lettres minuscule ou majuscule
(co
espondant au nom
e de colonnes spécifié à la ligne 1), de A à Z
uniquement, spéparés par au moins un espace
o Le nom
e de ligne définissant la grille co
espondant au nom
e 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’e
eur dans votre application:
• Nom
e de lignes ou de colonnes ne co
espondent 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’e
eur à 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
a
icot
ail
ananas
avocat
anane
cantaloup
cerise
celeri
chou
concom
e
figue
framboise
kiwi
laitue
lime
mangue
melon
pamplemousse
poire
poivron
pomme
adis
aisin

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
equis 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 co
espond 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 A
ayList a
Mots: un a
ayList 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’a
ayList a
Mots
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 After Apr 28, 2021

Solution

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

    
        
            
        
    
    
    
Solution/Project 2/.project

     Project 2
    
    
    
    
        
             org.eclipse.jdt.core.javabuilde
            
            
        
    
    
         org.eclipse.jdt.core.javanature
    
Solution/Project 2
in/EnumDirection.class
Solution/Project 2
in/GrilleJeu.class
Solution/Project 2
in/Mot.class
Solution/Project 2
in/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
a
icot
ail
ananas
avocat
anane
cantaloup
cerise
celeri
chou
concom
e
figue
framboise
kiwi
laitue
lime
mangue
melon
pamplemousse
poire
poivron
pomme
adis
aisin
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
a
icot
ail
ananas
avocat
anane
cantaloup
cerise
celeri
chou
concom
e
figue
framboise
kiwi
laitue
lime
mangue
melon
pamplemousse
poire
poivron
pomme
adis
aisin
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