Il faut savoir que dans le règne animal, une bestiole ne peut pas se mettre à la place d'une autre, ni en sauter une autre.
Un coup est représenté par le déplacement de l'agneau puis de l'un des loups au choix. L'agneau se déplace donc plus vite que les loups. Car pour déplacer tous les loups,il faut au moins autant de coups qu'il y a de loups.
Dans ce jeu il doit être possible :
- De définir la taille du damier au début de la partie (par défaut 8x8)
- De définir le nombre de loups au début de la partie (par défaut 4)
- De définir la place de l'agneau au début de la partie (par défaut, l'une des deux cases du milieu en bas)
- De jouer contre la machine, dans ce cas, si vous choisissez l'agneau, alors la machine prend les loups et réciproquement.
- De définir le niveau du jeu (le degré d'intelligence de la machine. Vous trouverez pour cela des heuristiques que vous expliquerez)
- De changer de bestiole à tout moment (cela revient à faire jouer la machine contre elle-même si l'on change à chaque coup !)
- De sauvegarder une partie pour la reprendre plus tard
- De sauvegarder les déplacements d'une partie afin de les revisualiser plus tard
- D'archiver les scores des divers joueurs et de la machine afin de les afficher.
Le jeu doit fonctionner sous Solaris sur les stations Sparc de l'école et l'IHM doit être textuelle (...)
[...] Les pièces se déplacent comme ceci : Comment jouer au jeu du loup et de l'agneau : Etat du jeu lors de la première partie : Les paramètres par défaut du jeu du loup et de l'agneau font affronter deux humains sur un damier 8x8, placent la partie en mode placement de l'agneau Si vous voulez changer n'importe laquelle des options de jeu ou activer un processus décrit dans le menu référez vous à la partie relative à l'usage du clavier. Nouvelle partie : Pour démarrer une nouvelle partie appuyer sur la touche n. Une fenêtre de confirmation s'affiche. Vous êtes alors invité à répondre par Oui ou Non. Si vous avez répondu oui, des fenêtres vont successivement s'afficher pour vous demander la largeur du damier, sa hauteur et si vous souhaitez que l'agneau commence la partie. [...]
[...] Paramètres en entrée 4. Paramètre renvoyé 5. nombre de lignes de code et évaluation de la difficulté Intelligence artificielle des loups Liste des fonctions int test_presence(int x,int y,s_damier damier) int func_lpa(s_damier damier) int func_lpad(s_damier damier) int func_lma(s_damier damier) int func_lmad(s_damier damier) int distance2(s_damier damier) int test_prof2(int lb,int prof,int prof_tab[50][50],s_damier damier) int mark_prof2(int lb,int prof,int prof_tab[50][50],int i,int j,s_damier damier) s_tri* info(s_damier damier) s_damier creer_damier_selon_coup(s_damier damier,coup_loups coup) s_damier creer_damier_selon_coup2(s_damier damier,int int is_coup_possible(coup_loups coup,s_damier damier) int is_coup_possible2(int d,s_damier new_damier) int func_etal_vert(s_damier damier) int func_etal_horiz(s_damier damier) int func_deg_lib_agneau(s_damier damier) int func_nb_loups_bloques(s_damier damier) int func_nb_coups_restants(s_damier damier,s_tri* tri) int func_repartition_loups(s_damier damier) s_tri* keep_max_dist(s_damier damier,s_tri* tri) s_tri* keep_max_etal_horiz(s_damier damier,s_tri* tri) s_tri* keep_min_repartition(s_damier damier,s_tri* tri) s_tri* keep_min_nb_loups_bloques(s_damier damier,s_tri* tri) s_tri* loups_derriere_agneau(s_damier damier,s_tri* tri) s_tri* play_lma(s_damier damier,s_tri* tri) int minmax(s_damier damier,int prof,int max_prof,int type) s_tri* keep_max_min_max(s_damier damier,s_tri* tri) s_coup jouer_seul_coup2(s_damier damier,s_tri* tri,int niv_ia,int type) s_coup ia_loups(s_damier damier,int niv_ia) Description des fonctions 5. [...]
[...] Déplacement agneau Scrolling_damier Arbres d'appel secondaires : Init_loups_agneau nombre de loups = Largeur du Damier / 2 Allocation mémoire Placement des loups sur le damier Effacement de l'écran Routine système clear Affichage_damier Teste l'état de la partie Rafraîchissement de la fenêtre infos Affichage de la fenêtre du damier des scrollbars du damier Affichage des loups et de l'agneau sur la partie visible du damier Affichage des loups et de l'agneau sur la partie visible du damier Affichage des déplacements autorisés si cela a été demandé Affichage du menu Changer_type_joueur Type joueur pour l'agneau Type joueur pour les loups Nouveau jeu Largeur du damier Longueur du damier L'agneau doit il commencer la partie Tour=0 Mode Plein écran Changer les paramètres de la partie visible du damier affichée à l'écran Déplacement loup Sélection de l'IA ou d'un déplacement manuel du loup Déplacement manuel du loup Zoomer sur le premier loup Test Touche clavier Affichage_damier Touche o ? zoomer sur le loup suivant et afficher les déplacement suivants Touche i ? zoomer sur le loup suivant et afficher les déplacement suivants Autre touche ? Déplacement du loup et tour=0 Déplacement agneau Sélection de l'IA ou d'un déplacement manuel de l'agneau Déplacement manuel de l'agneau Zoomer sur l'agneau Déplacer l'agneau et tour=1 Fin de la partie Confirmation Doit on sauver la partie ? [...]
[...] L'une pour faciliter l'accès aux coordonnées des loups : #define loup( damier, i ) ( damier->loups + i ) L'autre pour faciliter l'accès à une case du damier : #define tab( damier, y ) damier->tab + x + 1 + ( damier->largeur + 2 ) * ( y + 1 ) ) l'affichage et l'IHM: Généralités : La gestion de l'interface humain machine a été travaillé pour la rendre la plusconviviale possible. On a essayé de faire oublier à l'utilisateur cet aspect rébarbatif du mode texte en lui rappelant certaines caractéristiques des systèmes d'exploitation actuels. Un système d'affichage fenêtré a ainsi été élaboré. Ces fenêtre disposent d'un titre et pour celle contenant le damier des barres de scrolling. Les barres de scrolling visent à symboliser à l'utilisateur l'emplacement de la partie du damier affichée au sein du damier. L'utilisateur peut déplacer ces barres de scrolling à l'aide des touches p. [...]
[...] Les déplacements possibles seront alors symbolisés par un Position de l'agneau en début de partie : En début de partie vous devrez positionner l'agneau en bas de l'écran. Vous pourrez vous déplacer sur le damier à l'aide des barres de scrolling pour trouver un emplacement. Une fois l'emplacement déterminé vous devrez saisir un nombre référençant cet emplacement à l'aide de la touche w. Annuler un coup : Au cours de votre partie vous aurez la possibilité d'annuler un coup à l'aide de la touche e. Pour éviter les erreurs de manipulation, une confirmation vous sera proposée. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture