Skip to content
Snippets Groups Projects
Commit 0a98ecdf authored by Antoine AMELOOT's avatar Antoine AMELOOT
Browse files

Dépôt du projet

parents
Branches master
No related tags found
No related merge requests found
File added
File added
File added
File added
File added
idJoueur,pseudo,score,questionsRepondues
1,LeDieuF.,3,1-2-10-0-0-0-0-0-0-0-0-0-0-
2,UneBonneNoteSvp,7,1-2-10-14-12-4-6-0-0-0-0-0-0-
3,UneBonneNoteSvp,10,1-2-10-14-12-4-6-3-8-16-11-13-5-
type,question,bonneReponse,mauvaiseReponse1,mauvaiseReponse2,mauvaiseReponse3
QCM,Quelle est la capitale de la France ?,Paris,Lille,Lyon,Poitiers
QCM,"Complète la phrase suivante en conjuguant le verbe ""finir"" : Pendant que nous [...] le repas il était parti acheter le dessert",finissions,finissâmes,finissons,finnissons
QCM,Quel est le résultat de : 3 x (4+3) - 6 ?,15,9,18,12
QCM,Quel personnage fort connu de nos jours a créé le concept de l'école ?,Charlemagne,Aristote,Jules César,Platon
QCM,"Conjugue à l'aide du verbe ""être"" la phrase en anglais suivante : She [...] sitting on the chair while [...] are staying up",is / they,are / they,is / I,is / he
QCM,Choisis la phrase correcte :,J'aime les pâtes,J'aimes les pâte,J'aimes les pâtes,J'aime les pâte
QCM,V/F : La terre tourne autour du soleil en 365 jours.,VRAI,FAUX,,
QCM, De quel couleur était le cheval blanc de Henri IV ?,Blanc,Gris,Vert,
LIBRE,Complète : (12 x 2) / [...] = 8,3,,,
LIBRE,"Qui était surnommé ""Le Roi Soleil"" ?",Louis XIV,,,
LIBRE,Combien de grands fleuves traversent la France ?,5,,,
LIBRE,Conjugue le verbe chanter au présent à la 2ème personne du pluriel : Vous [...],chantez,,,
LIBRE,"Comment dit-on le mot ""fenêtre"" en anglais ?",window,,,
LIBRE,Quelle période historique correspond à l'apparition de notre espèce ?,préhistoire,,,
LIBRE,Recopiez la phrase suivante : « Les chaussettes de l’archiduchesse sont-elles sèches archi sèches »,Les chaussettes de l’archiduchesse sont-elles sèches archi sèches,,,
LIBRE,Recopiez la phrase suivante : « Un dragon gradé dégrade un gradé dragon »,Un dragon gradé dégrade un gradé dragon,,,
LIBRE,Recopiez la phrase suivante : « Quarante carottes crues croient que croquer crée des crampes »,Quarante carottes crues croient que croquer crée des crampes,,,
LIBRE,recopier "bleu",bleu,,,
\ No newline at end of file
#!/bin/bash
export SOURCES=src
export CLASSES=classes
export CLASSPATH=`find lib -name "*.jar" | tr '\n' ':'`
javac -cp ${CLASSPATH} -sourcepath ${SOURCES} -d ${CLASSES} $@ `find src -name "*.java"`
cp ressources/* classes/
File added
 # CLEVON
## Presentation du jeu
Clevon est un logiciel ludo-pédagogique conçu pour les enfants d'école primaire.Le but est d'incarner Clevon, un dragon ayant la particularité de posséder de petites ailes contrairement à ses congénères : de ce fait, il devra à l'aide du joueur répondre à des questions afin de franchir les divers obstacles sur le parcours.
## Lancement du jeu
Afin d'accéder à Clevon, il sera nécessaire d'utiliser les deux commandes suivantes sur un terminal :
>./compile.sh (compiler les fichiers présents dans 'src')
> ./run.sh Clevon (executer le jeu)
## Ajout de questions supplémentaires
Si vous souhaitez personnaliser le jeu, il vous est possible de le compléter en ajoutant les questions de votre choix : dans le dossier ressources, ouvrez le fichier ''questions.csv'' et remplissez sur une nouvelle ligne, **de gauche à droite** :
→ Type de question (QCM ou LIBRE **en majuscules**)
→ Question souhaitée
→ Au moins une bonne réponse et une mauvaise réponse (cas d'un QCM)
→ Une bonne réponse (cas d'une question LIBRE)
### Attention ! /!\
- Chaque élément doit être séparé par une **virgule**.
- Dans le cas d'un QCM, si toutes les colonnes ne sont pas remplies, il est nécessaire d'ajouter un **total de 5 virgules**
>Ex : Une question libre avec un bonne réponse, on comble les espaces vides avec des virgules
>LIBRE, Saisir rouge,rouge,,,
idJoueur,pseudo,score,questionsRepondues
1,LeDieuF.,3,1-2-10-0-0-0-0-0-0-0-0-0-0-
2,UneBonneNoteSvp,7,1-2-10-14-12-4-6-0-0-0-0-0-0-
3,UneBonneNoteSvp,10,1-2-10-14-12-4-6-3-8-16-11-13-5-
type,question,bonneReponse,mauvaiseReponse1,mauvaiseReponse2,mauvaiseReponse3
QCM,Quelle est la capitale de la France ?,Paris,Lille,Lyon,Poitiers
QCM,"Complète la phrase suivante en conjuguant le verbe ""finir"" : Pendant que nous [...] le repas il était parti acheter le dessert",finissions,finissâmes,finissons,finnissons
QCM,Quel est le résultat de : 3 x (4+3) - 6 ?,15,9,18,12
QCM,Quel personnage fort connu de nos jours a créé le concept de l'école ?,Charlemagne,Aristote,Jules César,Platon
QCM,"Conjugue à l'aide du verbe ""être"" la phrase en anglais suivante : She [...] sitting on the chair while [...] are staying up",is / they,are / they,is / I,is / he
QCM,Choisis la phrase correcte :,J'aime les pâtes,J'aimes les pâte,J'aimes les pâtes,J'aime les pâte
QCM,V/F : La terre tourne autour du soleil en 365 jours.,VRAI,FAUX,,
QCM, De quel couleur était le cheval blanc de Henri IV ?,Blanc,Gris,Vert,
LIBRE,Complète : (12 x 2) / [...] = 8,3,,,
LIBRE,"Qui était surnommé ""Le Roi Soleil"" ?",Louis XIV,,,
LIBRE,Combien de grands fleuves traversent la France ?,5,,,
LIBRE,Conjugue le verbe chanter au présent à la 2ème personne du pluriel : Vous [...],chantez,,,
LIBRE,"Comment dit-on le mot ""fenêtre"" en anglais ?",window,,,
LIBRE,Quelle période historique correspond à l'apparition de notre espèce ?,préhistoire,,,
LIBRE,Recopiez la phrase suivante : « Les chaussettes de l’archiduchesse sont-elles sèches archi sèches »,Les chaussettes de l’archiduchesse sont-elles sèches archi sèches,,,
LIBRE,Recopiez la phrase suivante : « Un dragon gradé dégrade un gradé dragon »,Un dragon gradé dégrade un gradé dragon,,,
LIBRE,Recopiez la phrase suivante : « Quarante carottes crues croient que croquer crée des crampes »,Quarante carottes crues croient que croquer crée des crampes,,,
LIBRE,recopier "bleu",bleu,,,
\ No newline at end of file
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# \/ \ / #
# ) \/ #
# C ( #
# __( ))__ #
# \_________/ #
# \ / #
# \ / #
# Ohoh, on dirait bien que #
# tu es à court de vies ! #
# #
# \||/ Bienvenue dans l'antre de la #
# | @___oo dernière chance, où tu pourras #
# / (__\---/ récupérer une ultime vie #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# ___________ \/ \ / #
# ( ) ) \/ #
# | | C ( #
# | | __( ))__ #
# | O | \_________/ #
# | | \ / #
# | | \ / #
# (___________) #
# #
# Voyons voir... #
# \||/ Un ! #
# | @___oo #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# ___________ \/ \ / #
# ( ) ) \/ #
# | O | C ( #
# | | __( ))__ #
# | | \_________/ #
# | | \ / #
# | O | \ / #
# (___________) #
# #
# Voyons voir... #
# \||/ Deux ! #
# | @___oo #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# ___________ \/ \ / #
# ( ) ) \/ #
# | O | C ( #
# | | __( ))__ #
# | O | \_________/ #
# | | \ / #
# | O | \ / #
# (___________) #
# #
# Voyons voir... #
# \||/ Trois ! #
# | @___oo #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# ___________ \/ \ / #
# ( ) ) \/ #
# | O O | C ( #
# | | __( ))__ #
# | | \_________/ #
# | | \ / #
# | O O | \ / #
# (___________) #
# #
# Voyons voir... #
# \||/ Quatre ! #
# | @___oo #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# ___________ \/ \ / #
# ( ) ) \/ #
# | O O | C ( #
# | | __( ))__ #
# | O | \_________/ #
# | | \ / #
# | O O | \ / #
# (___________) #
# #
# Voyons voir... #
# \||/ Cinq ! #
# | @___oo #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# ___________ \/ \ / #
# ( ) ) \/ #
# | O O | C ( #
# | | __( ))__ #
# | O O | \_________/ #
# | | \ / #
# | O O | \ / #
# (___________) #
# #
# Voyons voir... #
# \||/ Six ! #
# | @___oo #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# \/ \ / #
# \ / ) \/ #
# \ / C ( #
# \/ __( ))__ #
# /\ \_________/ #
# / \ \ / #
# / \ \ / #
# #
# Désolé, tu n'as pas #
# réussi à rester dans #
# \||/ l'intervalle... #
# | @___oo #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / / #
# \ /\ /\/ #
# \/ \ / #
# / ) \/ #
# / C ( #
# / __( ))__ #
# / \_________/ #
# \ / \ / #
# \ / \ / #
# \/ #
# Bien joué, tu as réussi #
# l'épreuve ! Voici donc #
# \||/ une vie supplémentaire, #
# | @___oo fais-en bon usage ! #
# / (__\---/ #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# \______(_______;;; __;;; z(____)...' #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
\ No newline at end of file
Debut
###############################################################################################
# #
# . #
# /^v^\ \ | / #
# '-.;;;.-' #
# -==;;;;;==- #
# .-';;;'-. #
# / | \ /^v^\ #
# ' #
# #
# #
# #
# \||/ #
# | @___oo #
# / (__,,,,| _____ _ _ _ ______ _____ #
# / _) | __ \| | | | | | ____|/ ____| #
# /\^\/ _) | |__) | | | | | | |__ | (___ #
# ) \/ / _) | _ /| | | | | | __| \___ \ #
# /\ )/|| | )_) | | \ \| |__| | |____| |____ ____) | #
# < > |(,,) )__) |_| \_\\____/|______|______|_____/ #
# || / \)___)\ #
# | \____( )___) )___ #
# \______(_______;;; __;;; #
#=============================================================================================#
# .. "".. #
# "" .... #
###############################################################################################
Salut à toi aventurier !
Clevon, qui a de toutes petites ailes, ne peut pas voler pour aller à l'école et ses camarades se moquent de lui.
Chaque obstacle renferme une question à laquelle tu devras répondre pour le franchir.
S'il y a plusieurs réponses possibles, contente-toi de donner la lettre de la bonne réponse.
Bon courage !
Fin
Debut
###############################################################################################
# #
# \****__ ____ je vais #
# | *****\_ --/ *\-__ gagner ! #
# snif. /_ (_ ./ ,/----' #
# pourquoi mes ailes \__ (_./ / #
# sont si petites ? \__ \___----^__ #
# _/ _ \ #
# | _/ __/ )\"\ _____ *\ #
# \||/ |\__/ / ^ ^ \____ ) #
# | @___oo \___--" \_____ ) #
# / (__,,,,| " #
# / _) #
# /\^\/ _) ____ __ ____ __ __ _____ __ __ #
# ) \/ / _) /\ _`\ /\ \ /\ _`\ /\ \/\ \/\ __`\/\ \/\ \ #
# /\ )/|| | )_) \ \ \/\_\\ \ \ \ \ \L\_\ \ \ \ \ \ \/\ \ \ `\\ \ #
# < > |(,,) )__) \ \ \/_/_\ \ \ __\ \ _\L\ \ \ \ \ \ \ \ \ \ , ` \ #
# || / \)___)\ \ \ \L\ \\ \ \L\ \\ \ \L\ \ \ \_/ \ \ \_\ \ \ \`\ \ #
# | \____( )___) )___ \ \____/ \ \____/ \ \____/\ `\___/\ \_____\ \_\ \_\ #
# \______(_______;;; __;;; \/___/ \/___/ \/___/ `\/__/ \/_____/\/_/\/_/ #
# #
# +====+ Aide le petit dragon Clevon à finir le parcours +====+ #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# Mais comment as-tu . #
# \****__ ____ réussi a franchir tous \ | / #
# | *****\_ --/ *\-_ les obstacles sur Terre ? '-.;;;.-' #
# /_ (_ ./ ,/----' -==;;;;;==- #
# \__ (_./ / .-';;;'-. #
# \__ \___----^__ ____ / | \ #
# _/ _ \ | | |\ | ' . #
# _/ __/ )\"\ _____ *\ |-- | | \ | .> )\;`a__ #
# |\__/ / ^ ^ \____ ) | | | \| o o ( _ _)/ /-." ~~ #
# \___--" \_____ ) o o `( )_ )/ #
# " o o <_ <_ #
# \||/ o #
# | @___oo Merci infiniment ! ___ #
# / (__,,,,| Grâce à toi et ~| |~~~~~~~~~~~~~~ #
# / _) à tes reflexions, ~~~| |~~~~~~~~~~~~~~~~~ #
# /\^\/ _) j'ai pu atteindre ~~~~~~~~~~~~~~~~~~~~~~~~~~ #
# ) \/ / _) l'école, même ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
# /\ )/|| | )_) avec un handicap ! | ECOLE | #
# < > |(,,) )__) | _______ --- | #
# || / \)___)\ | | | |+| | #
# | \____( )___) )___ | | o | --- | #
# \______(_______;;; __;;; |___|_____|_________________| #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# . #
# /^v^\ \ | / #
# '-.;;;.-' #
# -==;;;;;==- #
# .-';;;'-. #
# / | \ /^v^\ #
# ' #
# #
# Oh, un arbre #
# .w@www. #
# \||/ .w@www@wwww@. #
# | @___oo (w/wW@\w@w/\w@) #
# / (__,,,,| @/w/w/wWw\w\w\@ #
# / _) wo|| #
# /\^\/ _) ||od #
# ) \/ / _) wo|| #
# /\ )/|| | )_) ||od #
# < > |(,,) )__) wo|| #
# || / \)___)\ ||od #
# | \____( )___) )___ _ wo|| _ _ #
# \______(_______;;; __;;; 'I' ||od 'I' 'I' #
#=============================================================================================#
# .. "".. #
# "" .... #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# . #
# /^v^\ \ | / #
# '-.;;;.-' #
# -==;;;;;==- #
# .-';;;'-. #
# / | \ #
# ' #
# Attention, il y a un trou ! :( #
# Aide moi à le franchir s'il-te-plaît ! #
# .w@www. #
# .w@www@wwww@. \||/ #
# (w/wW@\w@w/\w@) | @___oo #
# @/w/w/wWw\w\w\@ / (__\---/ #
# wo|| / _) #
# ||od /\^\/ _) #
# wo|| ) \/ / _) #
# ||od /\ )/|| | )_) #
# wo|| < > |(,,) )__) #
# ||od || / \)___)\ #
# _ wo|| _ | \____( )___) )___ #
# 'I' ||od 'I' '\______(_______;;; __;;; ) #
#=============================================================| ) \ |===============#
# .. | / ) ( | #
# "" | \(_)/ | #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# /^v^\ . #
# \ | / #
# '-.;;;.-' #
# -==;;;;;==- /^v^\ #
# .-';;;'-. #
# / | \ #
# ' #
# /^v^\ #
# #
# C'est d'accord ! #
# #
# \||/ Tu dois répondre à mon #
# | @___oo énigme si tu veux espérer #
# / (__\---/ passer ! #
# / _) #
# /\^\/ _) /\_/\ / (_ #
# ) \/ / _) \ (0 0)// (_ #
# /\ )/|| | )_) \ (oo)/ -- _( #
# < > |(,,) )__) \ ___//\ \ _( #
# || / \)___)\ -- \ _( #
# | \____( )___) )___ (( ) ) .* #
# ) \______(_______;;; __;;; z(____)...' #
#=========| ) \ |===================================================================#
# | / ) ( | #
# | \(_)/ | #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# . #
# \ | / #
# '-.;;;.-' #
# -==;;;;;==- #
# /^v^\ .-';;;'-. ____________________ #
# / | \ |\ \_ #
# ' | \ \__ #
# Super, j'ai réussi ! | |\ \___ #
# Regarde, une grotte...Oh, | | \ \ #
# elle est verrouillée... | | \ \_ #
# | | \ \ #
# Bien joué. \||/ | | |\ \ #
# Fais attention | @___oo | | || \#
# sur la route ! / (__\---/ | \ / | #
# / _) | \/ | #
# _) \ /\_/\ /\^\/ _) | /\ | #
# _) \\(0 0) / ) \/ / _) | / \ | #
# )_ -- \(oo) / /\ )/|| | )_) |/ || #
# )_ / /\\__/ < > |(,,) )__) || #
# )_ / -- || / \)___)\ || #
# ( ( )) | \____( )___) )___ || #
# '...(____)z \______(_______;;; __;;; |____________________________#
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# __ ____ #
# | ( /__( #
# \ , , | \ ( #
# * * ` / #
# ) ) ' ' #
# C ( __ ____ C ( __ ____ #
# __( ))__ | ( /__( __( ))__ | ( /__( #
# \_________/ \ , , | \ ( \_________/ \ , , | \ ( #
# \ / * * ` / \ / * * ` / #
# \ / Aaaah toutes ces ' ' \ / ' ' #
# chauve-souris !! #
# __ ____ #
# \||/ | ( /__( #
# | @___oo \ , , | \ ( #
# / (__\---/ * * ` / #
# / _) ' ' #
# /\^\/ _) __ ____ __ ____ #
# ) \/ / _) | ( /__( | ( /__( __ #
# /\ )/|| | )_) \ , , | \ ( \ , , | \ ( | ( #
# < > |(,,) )__) * * ` / * * ` / \ , #
# || / \)___)\ ' ' ' ' * #
# | \____( )___) )___ ' #
# \______(_______;;; __;;; #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# \ / / \ /\/ _ #
# \ /\ / \ / |\ #
# \/ \ / \/ | \ #
# \/ | \ #
# ) | | \ #
# C ( (_) ____ | \ #
# __( ))__ \ / | \ #
# \_________/ \/ | \ #
# \ / | \ #
# \ / Fiou, j'ai réussi | | #
#__ ____ à les esquiver T_T ____ | | #
#( /__( \ / | | #
#, , | \ ( \||/ | \/ | | #
#* * ` / | @___oo (_) | | #
#' ' / (__\---/ | | #
# / _) | | | #
# /\^\/ _) (_) | | #
# ) \/ / _) Tiens, des gouttes d'eau...? | #
# /\ )/|| | )_) Oh non, des stalactites tombent | #
# < > |(,,) )__) du plafond ! ____ | #
# || / \)___)\ \ / | #
# | \____( )___) )___ | \/ | #
# \______(_______;;; __;;; (_) | #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# . #
# ________ /^v^\ \ | / #
#_/ / | '-.;;;.-' #
# / | -==;;;;;==- #
# / | .-';;;'- #
# / | / | \ #
# / | ' #
# / | Aah, l'air frais m'avait manqué ! /^v^\ #
# | | Aide-moi à grimper ces montagnes, #
# | | s'il-te-plaît :) #
# | | #
# | | \||/ #
# | | | @___oo /\ #
# | | / (__\---/ /~'\ #
# | | / _) / \ #
# | | /\^\/ _) / \ #
# | ) \/ / _) /\ / \ #
# | /\ )/|| | )_) /~'\ / \ /\ #
# | < > |(,,) )__) / \/ \ /~'\ #
# | || / \)___)\ / \ \/ \ #
# | | \____( )___) )___ / \ \ \ #
# | \______(_______;;; __;;; / \ \ \ #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# \ \ \ \ #
# \ \ #
# \ Tiens, on dirait qu'il \ #
# commence à pleuvoir... \ #
# \ \ \ #
# Brr, cet énorme dragon \ Qui ose piétiner mes terres ?! \ #
# me fait froid dans le dos... Toi, dragon chétif aux ailes #
# Nous ne sommes plus très loins dépourvues de leur pouvoir ? \ #
# \ de l'école, peux-tu m'assister Viens donc m'affronter, si #
#^\ une dernière fois avec ton intelligence ? tu l'oses ! #
# \ ) \ \ _____ \ #
# \||/ \ ( ___ / _ \ #
# | @___oo \/ \____-----------/ (o) \_ #
# \ / (__\---/ ( O \____ #
# \ / _) \_____________ ` \ / #
# \ /\^\/ _) VVVVVVV VV V\ \/ \ #
#\ ) \/ / _) \ (-- _AAAAAAA__A_/ | | #
# \ /\ /\ )/|| | )_) \ \______________//_ \_______ #
# \ /~'\ < > |(,,) )__) \ \___' \ / #
# \/ \ \ || / \)___)\ \ | \ / #
# \ \ | \____( )___) )___ \ \ / \/ #
# \ \ \______(_______;;; __;;; / \ #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# \ \ \ \ #
# \ \ #
# \ \ #
# \ #
# \ \ \ #
# \ \ ( #
# ) Aïe, tu vas le regretter ! #
# Yes, il s'affaiblit ! ( #
# \ Mais ça n'a pas l'air \ ) #
# d'être assez...Continuons ! ( #
# \ ) \ \ _____ \ #
# \||/ \ ( ___ / _ \ \ #
# | @___oo \/ \____-----------/ (o) \_ #
# \ / (__\---/ ( O \____ #
# \ / _) \_____________ ` \ / #
# \ /\^\/ _) VVVVVVV VV V\ \/ \ #
#\ ) \/ / _) \ (-- _AAAAAAA__A_/ | | #
# \ /\ /\ )/|| | )_) \ \______________//_ \_______ #
# \ /~'\ < > |(,,) )__) \ \___' \ / #
# \/ \ || / \)___)\ \ | \ / #
# \ \ | \____( )___) )___ \ \ / \/ \ #
# \ \ \______(_______;;; __;;; / \ #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
Debut
###############################################################################################
# #
# \ \ \ \ #
# \ \ #
# \ ) \ #
# ( \ #
# \ \ \ \ #
# \ ( #
# Super, regarde, on ) Impossible, #
# a réussi ! On l'a fait ! ( moi, être vaincu par #
# \ Vite, allons à l'école \ un dragon aussi frêle ? #
#^\ avant d'être en retard ! ( #
# \ ) \ \ _____ \ #
# \||/ \ ( ___ / \ \ #
# | @___oo \/ \____-----------/ \/ \_ #
# \ / (__\---/ ( O /\ \____ #
# \ / _) \_____________ ` \ / #
# \ /\^\/ _) VVVVVVV VV V\ \/ \ #
#\ ) \/ / _) \ (-- _AAAAAAA__A_/ | | #
# \ /\ /\ )/|| | )_) \ \______________//_ \_______ #
# \ /~'\ < > |(,,) )__) \ \___' \ / #
# \/ \ \ || / \)___)\ \ | \ / #
# \ \ | \____( )___) )___ \ \ / \/ \ #
# \ \ \______(_______;;; __;;; / \ #
#=============================================================================================#
# #
# #
###############################################################################################
Fin
run.sh 0 → 100755
#!/bin/bash
cp ressources/* classes/
cd classes
export CLASSPATH=`find ../lib -name "*.jar" | tr '\n' ':'`
java -cp ${CLASSPATH}:. $@
cd ..
// Importation des extentions pour lire et écrire des fichiers .csv et .txt
import extensions.CSVFile;
import extensions.File;
class Clevon extends Program {
final CSVFile QUESTIONS = loadCSV("../ressources/questions.csv");
final CSVFile PARTIES = loadCSV("../ressources/parties.csv");
final String SCENES_DE = "../ressources/txt/de.txt";
final String SCENES = "../ressources/txt/scenes.txt";
final String REGLES = "../ressources/txt/regles.txt";
final int FACES = 6;
final int COUPS = 5;
final int NB_QUESTIONS_GAGNER = 10;
final int NB_QUESTIONS_REPONDUES = 13;
// // // // // // // // // // // // // //
// == Fonctions relatives au joueur == //
// Créer le profil du joueur en utilisant la classe Joueur
Joueur creerProfilJoueur(CSVFile fichier, String prenom) {
Joueur res = new Joueur();
res.pseudo = prenom;
res.idJoueur = rowCount(fichier);
res.score = 0;
res.questionsRepondues = new int[NB_QUESTIONS_REPONDUES];
return res;
}
// // // // // // // //
// Vérifie si la sauvegarde existe
boolean existeSauvegarde(CSVFile fichier, int numeroPartie) {
boolean res = false;
// Si le numéro de sauvegarde est un numéro de ligne valide du fichier (sauf 0)
if (numeroPartie > 0 && numeroPartie < rowCount(fichier)) {
res = true;
}
return res;
}
// // // // // // // //
// Récupérer les données du fichier des parties pour sauvegarder
String[][] recuperationDonnees(CSVFile fichier) {
// Créer un tableau avec le nombre de lignes du fichier .csv + 1 ligne pour la sauvegarde
String[][] res = new String[rowCount(fichier)+1][columnCount(fichier)];
// Remplir le tableau avec les données du fichier
for (int li=0; li<length(res,1)-1; li++) {
for (int col=0; col<length(res,2); col++) {
res[li][col] = getCell(fichier, li, col);
}
}
return res;
}
// Sauvegarder les informations du joueur
void sauvegarde(CSVFile fichier, Joueur j) {
// Récupérer les sauvegardes précédentes
String[][] s = recuperationDonnees(fichier);
// Ajouter les informations sur la ligne finale du tableau
s[length(s,1)-1][0] = "" + rowCount(fichier);
s[length(s,1)-1][1] = j.pseudo;
s[length(s,1)-1][2] = "" + j.score;
s[length(s,1)-1][3] = "";
int idx = 0;
// Concaténer les questions déjà visitées (id-id-id-)
while (idx < length(j.questionsRepondues)) {
s[rowCount(fichier)][3] = s[rowCount(fichier)][3] + j.questionsRepondues[idx] + "-";
idx = idx + 1;
}
saveCSV(s, "../ressources/parties.csv");
}
void afficherParties(CSVFile fichier) {
String id, pseudo, score;
if (rowCount(fichier) == 1) {
println("Aucune sauvegarde disponible. Merci de relancer le jeu ([Ctrl] + [C] pour stopper le programme).");
}
else {
for (int li=1; li<rowCount(fichier); li++) {
id = getCell(fichier, li, 0);
pseudo = getCell(fichier, li, 1);
score = getCell(fichier, li, 2);
println(" . Emplacement n°" + id + ": " + pseudo + " avec un score de " + score);
}
print("Tu m'avais déjà aidé la dernière fois ? Quel est ton numéro de partie ? ");
}
}
void sauvegardeAuto(Joueur j) {
if (j.score == 5) {
sauvegarde(PARTIES, j);
nettoyageEcran();
println(" . Sauvegarde effectuée au numéro " + rowCount(PARTIES));
delay(3000);
}
}
// // // // // // // //
// Charger les données du joueur
Joueur chargerProfilJoueur(CSVFile fichier, int numeroPartie) {
Joueur res = new Joueur();
res.pseudo = getCell(fichier, numeroPartie, 1);
res.idJoueur = numeroPartie;
res.score = stringToInt(getCell(fichier, numeroPartie, 2));
res.questionsRepondues = new int[NB_QUESTIONS_REPONDUES];
String questionsRepondues = getCell(fichier, numeroPartie, 3);
int idxTab = 0;
String strIdQuestion = "";
for (int i=0; i<length(questionsRepondues); i++) {
if (charAt(questionsRepondues, i) != '-') {
strIdQuestion = strIdQuestion + charAt(questionsRepondues, i);
}
else {
res.questionsRepondues[idxTab] = stringToInt(strIdQuestion);
strIdQuestion = "";
idxTab = idxTab + 1;
}
}
return res;
}
// Vérifie que la réponse donnée est un nombre
boolean estSauvegardeValide(String reponse, CSVFile fichier) {
boolean res = true;
int idx = 0;
if (length(reponse) > 0) {
while (res && idx < length(reponse)) {
if (charAt(reponse, idx) < '0' || charAt(reponse, idx) > '9') {
res = false;
}
idx = idx + 1;
}
if (res) {
if (stringToInt(reponse) <= 0 || stringToInt(reponse) >= rowCount(fichier)) {
res = false;
}
}
}
else {
res = false;
}
return res;
}
// // // // // // // //
// Compte le nombre de questions répondues pour un joueur sauvegardé
int nombreQuestionsReponduesSauvegarde(String questions) {
int res = 0;
for (int i=0; i<length(questions); i++) {
if (charAt(questions,i) == '-') {
res = res+1;
}
}
return res;
}
// // // // // // // //
// Vérifie si le joueur peut encore répondre à des questions (j.questionsRepondues non plein)
boolean peutEncoreJouer(Joueur j) {
boolean res = false;
int idx = 0;
while (!res && idx < length(j.questionsRepondues)) {
if (j.questionsRepondues[idx] == 0) {
res = true;
}
idx = idx + 1;
}
return res;
}
// // // // // // // // // // // // // // //
// == Fonctions relatives aux questions == //
// Ajoute la question au tableau des questions déjà répondues du joueur
void ajoutQuestionRepondue(Joueur j, Question q) {
if (peutEncoreJouer(j)) {
boolean ajout = false;
int idx = 0;
while (!ajout && idx < length(j.questionsRepondues)) {
if (j.questionsRepondues[idx] == 0) {
ajout = true;
j.questionsRepondues[idx] = q.idQuestion;
}
idx = idx + 1;
}
}
}
// // // // // // // //
// Vérifie si la question choisie n'a pas déjà été répondue par le joueur
boolean questionDejaRepondue(int idQuestion, Joueur j) {
boolean res = false;
int idx = 0;
while (idx < length(j.questionsRepondues) && !res) {
if (j.questionsRepondues[idx] == idQuestion) {
res = true;
}
idx = idx + 1;
}
return res;
}
// // // // // // // //
// Renvoie l'ID d'une question non répondue par le joueur prise aléatoirement dans le fichier .csv
int choisirQuestion(Joueur j, CSVFile fichier) {
int res;
int nbLignes = rowCount(fichier);
do {
res = (int) (random() * (nbLignes-1) + 1);
} while (questionDejaRepondue(res, j));
return res;
}
// Compte le nombre de réponses possibles pour une question
int reponsesPossibles(int idQuestion, CSVFile fichier) {
int res = 0;
for (int i=2; i<columnCount(fichier,idQuestion); i++) {
if (!equals("",getCell(fichier,idQuestion,i))) {
res = res + 1;
}
}
return res;
}
// Crée la variable question à partir de l'ID choisi
Question creerQuestion(int idQuestion, CSVFile fichier) {
Question res = new Question();
res.idQuestion = idQuestion;
res.type = getCell(fichier, idQuestion, 0);
res.enonce = getCell(fichier, idQuestion, 1);
int nombreReponses = reponsesPossibles(idQuestion, fichier);
res.reponses = new String[nombreReponses];
for (int i=0; i<nombreReponses; i++) {
res.reponses[i] = getCell(fichier, idQuestion, 2+i);
}
return res;
}
// // // // // // // //
// Affiche la question et ses réponses si c'est un QCM
void afficherQuestion(Question q, Joueur j) {
String enoncee = q.enonce;
println(enoncee);
if (equals("QCM", q.type)) {
int idx = 0;
while (idx < length(q.reponses)) {
println(((char) ('A' + idx)) + " : " + q.reponses[idx]);
idx = idx + 1;
}
}
println("Clevon : Quelle est ta réponse, " + j.pseudo + " ?");
print(j.pseudo + " : ");
}
// // // // // // // //
// Mélanger les réponses dans la question
void melanger(Question q) {
int num = 1;
String temp;
if(equals("QCM",q.type)){
num = (int) (random()*(length(q.reponses)-1));
temp = q.reponses[num];
q.reponses[num] = q.reponses[0];
q.reponses[0] = temp;
}
}
// // // // // // // // //
// // // // // // // // // // // // // // // // //
// == Fonctions relatives à la réponse donnée == //
// Vérifie le bon format de la réponse
boolean estAuBonFormat(Question q, String reponse) {
boolean res = false;
reponse = toUpperCase(reponse);
// Si la question est un QCM
if(equals(q.type,"QCM")){
// Vérifier que la réponse ne soit pas vide
if(length(reponse)==1){
if(charAt(reponse,0) >= 'A' && charAt(reponse,0) < (char)(length(q.reponses)+'A')){
res = true;
}
}
}
// Si la question est libre
else {
if(!equals(reponse,"")){
res = true;
}
}
return res;
}
// // // // // // // // //
// Redemande une réponse valide
String redemander(String reponse,Question q, Joueur j){
String res=reponse;
while(!estAuBonFormat(q,res)){
println("Clevon : Je te rappelle qu'il faut saisir une lettre entre celles de toutes les réponses proposées ! Réessaye, s'il-te-plaît.");
print(j.pseudo + " : ");
res = readString();
}
return res;
}
// // // // // // // // //
// Vérifie si la réponse donnée est correcte
boolean estBonneReponse(Question q, String reponse, CSVFile fichier){
boolean res = false;
reponse = toUpperCase(reponse);
if(equals(q.type,"LIBRE")) {
if(equals(toUpperCase(reponse), toUpperCase(q.reponses[0]))) {
res = true;
}
}
else {
int indiceRep = (int)(charAt(reponse,0) -'A');
if(equals(q.reponses[indiceRep],getCell(fichier,q.idQuestion,2))){
res = true;
}
}
return res;
}
// // // // // // // // // // // // // //
//== Fonctions relatives au mini-jeu == //
// Initialise le jeu du dé
De initialiserPartie() {
De res = new De();
res.nombreFaces = FACES;
res.coups = COUPS;
int max = (int) (random() * (FACES*COUPS));
res.bornes = new int[]{max-FACES, max};
return res;
}
// // // // // // // // //
// Vérifie l'opérateur
String verifierSaisie(String s) {
while (!equals(s,"+") && !equals(s,"-")) {
print(" > Erreur de saisie. Tu dois saisir '+' ou '-' : ");
s = readString();
}
return s;
}
// // // // // // // // //
// Vérifie la prédiction
String verifierPrediction(String s) {
while (!equals(s,"O") && !equals(s,"N")) {
print(" > Erreur de saisie. Tu dois saisir 'O' ou 'N' : ");
s = readString();
}
return s;
}
// // // // // // // // //
// Retourne une valeur du dé
int lancerDe(De d) {
return (int) (random() * (FACES-1)+1);
}
// // // // // // // // //
// Actualise le score
int actualiserScore(int score, String operateur, int valeur) {
if (equals(operateur, "+")) {
score = score + valeur;
}
else {
score = score - valeur;
}
return score;
}
// // // // // // // // //
// Retourne le résultat d'une partie de jeu de dé
boolean jeuDuDe() {
boolean resultat = false;
De d = initialiserPartie();
int score = 0;
String s;
int valeur;
nettoyageEcran();
afficherScene(0, SCENES_DE);
print("Penses-tu faire un score entre " + d.bornes[0] + " et " + d.bornes[1] + " en " + COUPS + " coups ? [O/N]\n > ");
String prediction = verifierPrediction(readString());
while (d.coups > 0) {
d.coups = d.coups - 1;
println("Objectif : somme comprise entre " + d.bornes[0] + " et " + d.bornes[1]);
print(" > Saisie l'opération [+/-]: ");
s = verifierSaisie(readString());
valeur = lancerDe(d);
nettoyageEcran();
afficherScene(valeur, SCENES_DE);
if (equals(s,"+")) {
println("Tu additionnes " + valeur + " avec " + score + ".");
}
else {
println("Tu soustrais " + valeur + " avec " + score + ".");
}
score = actualiserScore(score, s, valeur);
println("Tu obtiens un score de " + score + ".");
println("Il te reste " + d.coups + " coups.");
}
nettoyageEcran();
if (score <= d.bornes[1] && score >= d.bornes[0] && equals(prediction, "O")) {
afficherScene(8, SCENES_DE);
println("Bravo tu as réussi !");
resultat = true;
compteARebours("Retour au jeu dans ", 5);
}
else if ((score >= d.bornes[1] || score <= d.bornes[0]) && equals(prediction, "N")) {
afficherScene(8, SCENES_DE);
println("Bravo, tu as fais le bon choix car tu es hors limite.");
resultat = true;
compteARebours("Retour au jeu dans ", 5);
}
else {
afficherScene(7, SCENES_DE);
println("Dommage... Tu as trop joué avec le feu...");
}
return resultat;
}
// // // // // // // // // // // // // // //
//== Fonctions relatives à l'affichage == //
// Affiche la scène spécifiée à l'écran
void afficherScene(int scene, String chemin) {
File fichier = newFile(chemin);
int compteurScene = -1;
boolean fin = false;
// Parcours du fichier
while(ready(fichier) && !fin) {
String ligne = readLine(fichier);
// Si la ligne vaut DEBUT alors c'est une nouvelle scène
if (equals(ligne, "Debut")){
compteurScene = compteurScene + 1;
}
// Si c'est la fin de la scène précédente à celle voulue alors on se prépare à afficher
else if (equals(ligne, "Fin") && compteurScene == scene) {
fin = true;
}
// On affiche la scène
else if (compteurScene == scene) {
println(ligne);
}
}
}
// // // // // // // // //
// Renvoie le choix de navigation après avoir affiché le menu
int menuNavigation() {
println("=== Menu principal ===");
String[] menu = new String[]{"Jouer","Les règles et l'histoire","Charger une partie","Quitter"};
// Affichage du menu
for (int i=0; i<length(menu); i++) {
println((i+1) + ") " + menu[i]);
}
print("Que veux-tu faire ? ");
String saisie = readString();
boolean estValide = false;
// Vérification de la validité de la saisie
while (!estValide) {
if (length(saisie)== 1 && '1' <= charAt(saisie,0) && charAt(saisie,0) <= (char) (length(menu)+'0')) {
estValide = true;
}
else {
print("Attention aventurier, tu dois saisir un chiffre compris entre 1 et " + length(menu) + " : ");
saisie = readString();
}
}
return stringToInt(saisie);
}
// // // // // // // // //
// Effectue le compte à rebours en affichant une phrase
void compteARebours(String phrase, int temps) {
print(phrase);
for (int i=0; i<temps; i++) {
print(" " + (temps-i));
delay(1000);
}
println();
}
// // // // // // // // //
// Efface le contenu de l'écran et replace le curseur en position initiale
void nettoyageEcran() {
clearScreen();
cursor(0,0);
}
// // // // // // // // // // // // //
// == Fonctions relatives au jeu == //
// Vérifie si le fichier ne comporte pas de colonne manquante
boolean estFichierProfilCorrect(){
boolean res = true;
int idxL = 0;
while (res && idxL < rowCount(PARTIES)) {
if (columnCount(PARTIES,idxL) != 4) {
res = false;
println("Une erreur a été détectée ligne " + idxL + " (valeur.s manquante.s)");
}
idxL = idxL + 1;
}
return res;
}
boolean estFichierQuestionsCorrect() {
int nbLignes = rowCount(QUESTIONS);
if (nbLignes >= NB_QUESTIONS_REPONDUES+1) {
return true;
}
else {
println("Erreur dans le fichier des questions : il en manque " + (NB_QUESTIONS_REPONDUES-nbLignes));
return false;
}
}
// Fait jouer le joueur en affichant les bonnes scènes
void jeu(Joueur j, int compteurScene, boolean derniereChance) {
Question q;
String reponse;
while (j.score < NB_QUESTIONS_GAGNER && peutEncoreJouer(j)) {
sauvegardeAuto(j);
nettoyageEcran();
println("> Score : " + j.score + "/" + NB_QUESTIONS_GAGNER);
afficherScene(compteurScene, SCENES);
q = creerQuestion(choisirQuestion(j, QUESTIONS), QUESTIONS);
melanger(q);
ajoutQuestionRepondue(j, q);
afficherQuestion(q,j);
reponse = readString();
while (!estAuBonFormat(q, reponse)) {
reponse = redemander(reponse, q, j);
}
if (estBonneReponse(q, reponse, QUESTIONS)) {
j.score = j.score + 1;
compteurScene = compteurScene + 1;
println("Clevon : Bonne réponse ! Nous pouvons avancer !");
}
else {
println("Clevon : Dommage ! La bonne réponse était : " + getCell(QUESTIONS, q.idQuestion, 2));
}
if (j.score < NB_QUESTIONS_GAGNER) {
compteARebours("Question suivante dans ", 5);
}
}
nettoyageEcran();
if (j.score == NB_QUESTIONS_GAGNER) {
afficherScene(1, SCENES);
println("Clevon : Félicitations ! Grâce à ton aide nous sommes arrivés à l'école ! Croire en soi est la clé pour atteindre ses objectifs, qu'importe comment tu es ou d'où tu viens :) <3 keur keur keur");
}
else {
if (j.score == NB_QUESTIONS_GAGNER-1 && derniereChance) {
// Jeu du dé
if (jeuDuDe()) {
nettoyageEcran();
j.questionsRepondues[length(j.questionsRepondues)-1] = 0;
derniereChance = false;
jeu(j, compteurScene, derniereChance);
}
else {
println("Clevon : Dommage, nous n'avons pas été assez malins...Nous y arriverons une prochaine fois, peut-être !");
}
}
else {
println("Clevon : Dommage, nous n'avons pas été assez malins...Nous y arriverons une prochaine fois, peut-être !");
}
}
sauvegarde(PARTIES, j);
}
// // // // // // // // // // //
// == Algorithme principal == //
void algorithm() {
nettoyageEcran();
boolean partiesCorrectes = estFichierProfilCorrect();
boolean questionsCorrectes = estFichierQuestionsCorrect();
if (partiesCorrectes && questionsCorrectes) {
afficherScene(0, SCENES);
Joueur j = creerProfilJoueur(PARTIES, "");
int choixNavigation = menuNavigation();
while (choixNavigation != 1 && choixNavigation != 4) {
if (choixNavigation == 2) {
nettoyageEcran();
afficherScene(0, REGLES);
print("Appuie sur [Enter] pour continuer. ");
String sortie = readString();
nettoyageEcran();
afficherScene(0, SCENES);
choixNavigation = menuNavigation();
}
else if (choixNavigation == 3) {
afficherParties(PARTIES);
String sauvegarde = readString();
boolean sauvegardeValide;
int idJoueur = 0;
do {
if (!estSauvegardeValide(sauvegarde, PARTIES)) {
sauvegardeValide = false;
print("Sauvegarde invalide, réessaie : ");
sauvegarde = readString();
}
else {
sauvegardeValide = true;
idJoueur = stringToInt(sauvegarde);
}
} while (!sauvegardeValide);
j = chargerProfilJoueur(PARTIES, idJoueur);
choixNavigation = 1;
println("Ravi de te revoir, " + j.pseudo + "! Reprenons...");
compteARebours("Reprise du jeu dans ", 5);
}
}
if (choixNavigation == 1) {
Question q;
String reponse = "";
int compteurScene = 1;
if (j.pseudo == "") {
println("Bonjour toi ! Moi c'est Clevon, j'ai de toutes petites ailes et je dois finir cette course. J'ai besoin de ton aide...");
print("Mais d'abord, quel est ton nom ? ");
String prenom = readString();
while (length(prenom) == 0) {
print("Le silence n'est pas un prénom... Quel est ton prénom ? ");
prenom = readString();
}
println("C'est joli ça, " + prenom + ".");
compteARebours("Commençons vite...", 3);
j = creerProfilJoueur(PARTIES, prenom);
}
else {
compteurScene = j.score;
}
jeu(j, compteurScene+1, true);
}
else if (choixNavigation == 4) {
println("Tu ne m'as été d'aucune aide, aventurier, à bientôt !");
}
}
}
// // // // // // // // // //
// == Fonctions de test == //
// Clevon
void testCreerProfilJoueur() {
Joueur test = creerProfilJoueur(PARTIES, "Michel");
println("\n" + test.pseudo + "#" + test.idJoueur + " a bien été créé !");
println("Score initial = " + test.score);
print("Questions déjà répondues : ");
for (int i=0; i<length(test.questionsRepondues); i++) {
print(test.questionsRepondues[i]);
}
println();
}
void testEstBonneReponse() {
Question q = creerQuestion(1, QUESTIONS);
assertTrue(estBonneReponse(q, "A", QUESTIONS));
assertFalse(estBonneReponse(q, "B", QUESTIONS));
assertFalse(estBonneReponse(q, "D", QUESTIONS));
Question q2 = creerQuestion(10, QUESTIONS);
assertTrue(estBonneReponse(q2,"Louis XIV", QUESTIONS));
assertFalse(estBonneReponse(q2,"Louis X", QUESTIONS));
}
void testExisteSauvegarde() {
assertTrue(existeSauvegarde(PARTIES, 1));
assertFalse(existeSauvegarde(PARTIES, 0));
assertFalse(existeSauvegarde(PARTIES, -450));
assertFalse(existeSauvegarde(PARTIES, 450));
}
void testSauvegarde() {
Joueur j = chargerProfilJoueur(PARTIES, 1);
// sauvegarde(PARTIES, j);
}
void testChargerProfilJoueur() {
Joueur j = chargerProfilJoueur(PARTIES, 1);
assertEquals("John", j.pseudo);
int[] tab = new int[]{1,4,0,0,0,0,0,0};
assertArrayEquals(j.questionsRepondues, tab);
}
void testEstSauvegardeValide() {
assertTrue(estSauvegardeValide("1", PARTIES));
assertFalse(estSauvegardeValide("400", PARTIES));
assertFalse(estSauvegardeValide("0", PARTIES));
assertFalse(estSauvegardeValide("", PARTIES));
assertFalse(estSauvegardeValide("1a", PARTIES));
}
void testNombreQuestionsReponduesSauvegarde() {
assertEquals(3, nombreQuestionsReponduesSauvegarde("1-12-3-"));
assertEquals(0, nombreQuestionsReponduesSauvegarde(""));
assertEquals(1, nombreQuestionsReponduesSauvegarde("14-"));
}
void testPeutEncoreJouer() {
Joueur j = creerProfilJoueur(PARTIES, "Michel");
assertTrue(peutEncoreJouer(j));
for (int i=0; i<length(j.questionsRepondues); i++) {
j.questionsRepondues[i] = choisirQuestion(j, QUESTIONS);
}
assertFalse(peutEncoreJouer(j));
}
void testAjoutQuestionRepondue() {
Joueur j = creerProfilJoueur(PARTIES, "Michel");
Question q = creerQuestion(choisirQuestion(j, QUESTIONS), QUESTIONS);
int[] tabTest = new int[]{q.idQuestion,0,0,0,0,0,0,0};
ajoutQuestionRepondue(j, q);
assertArrayEquals(j.questionsRepondues,tabTest);
}
void testQuestionDejaRepondue() {
Joueur j = creerProfilJoueur(PARTIES, "Michel");
j.questionsRepondues[0] = 5;
assertTrue(questionDejaRepondue(5, j));
assertFalse(questionDejaRepondue(1, j));
}
void testChoisirQuestion() {
Joueur j = creerProfilJoueur(PARTIES, "Michel");
j.questionsRepondues[0] = 5;
for (int i=0; i<10; i++) {
assertNotEquals(5, choisirQuestion(j, QUESTIONS));
}
}
void testCreerQuestion() {
Joueur j = creerProfilJoueur(PARTIES,"Michel");
Question q = creerQuestion(7,QUESTIONS);
String[] tabVerif = new String[]{"VRAI","FAUX"};
assertArrayEquals(tabVerif, q.reponses);
}
void testReponsesPossibles() {
assertEquals(4, reponsesPossibles(1, QUESTIONS));
assertEquals(2, reponsesPossibles(7, QUESTIONS));
assertEquals(1, reponsesPossibles(10, QUESTIONS));
}
void testAfficherQuestion() {
Question q = creerQuestion(1, QUESTIONS);
Joueur j = creerProfilJoueur(PARTIES, "Michel");
println();
afficherQuestion(q,j);
}
void testMelanger() {
println("=== QUESTION D'ORIGINE ===");
Question test = creerQuestion(1, QUESTIONS);
println("Question n°" + test.idQuestion + " : " + test.enonce);
if (equals(test.type, "QCM")) {
println("Réponses possibles : ");
for (int i=0; i<length(test.reponses); i++) {
println(" -" + (char) (i + 'A') + " " + test.reponses[i]);
}
}
println("======================\n=== QUESTION MELANGEE ===");
println("Question n°" + test.idQuestion + " : " + test.enonce);
melanger(test);
if (equals(test.type, "QCM")) {
println("Réponses possibles : ");
for (int i=0; i<length(test.reponses); i++) {
println(" -" + (char) (i + 'A') + " " + test.reponses[i]);
}
}
}
void testEstAuBonFormat() {
Question q = creerQuestion(1, QUESTIONS);
assertTrue(estAuBonFormat(q,"A"));
assertFalse(estAuBonFormat(q,"E"));
Question q1 = creerQuestion(10, QUESTIONS);
assertTrue(estAuBonFormat(q1,"oui"));
assertFalse(estAuBonFormat(q1,""));
}
// Jeu du dé
void testVerifierSaisie() {
String s = "a";
s = verifierSaisie(s);
}
void testVerifierPrediction() {
String s = "a";
s = verifierPrediction(s);
}
void testLancerDe() {
De d = initialiserPartie();
assertGreaterThanOrEqual(1, lancerDe(d));
assertLessThanOrEqual(6, lancerDe(d));
}
void testActualiserScore() {
assertEquals(8, actualiserScore(6, "+", 2));
assertEquals(5, actualiserScore(8, "-", 3));
assertEquals(1, actualiserScore(-4, "+", 5));
}
}
\ No newline at end of file
class De {
int coups;
int nombreFaces;
int[] bornes;
}
\ No newline at end of file
class Joueur {
int idJoueur;
String pseudo;
int[] questionsRepondues;
int score;
}
\ No newline at end of file
class Question {
int idQuestion;
String type;
String enonce;
String[] reponses;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment