Présentation du jeu

Informations générales

Télécharger le jeu
capture du jeu sous linux
 

Jouer au jeu

L'exécutable du jeu est totalement autonome. Pour jouer il est donc inutile de procéder à une installation ni extraire les fichiers du dossier compressé : il suffit simplement d'exécuter le programme « Puissance ». Pour optimiser l'affichage, il est conseillé de mettre sa fenêtre en plein écran (ne pas se préoccuper du bogue d'affichage, il cessera au prochain changement de page).

Commandes du jeu

Règles et mode de jeu

Le jeu classique se présente sous la forme d'un plateau de jeu rectangulaire comportant différentes cases et placé sur la tranche. Deux joueurs glissent chacun leur tour un jeton qui tombe jusqu'à rencontrer un obstacle (jeton ou sol). Le vainqueur est celui qui aligne 4 de ses jetons.

La version proposée est une généralisation. Le plateau de jeu n'est plus un rectangle mais est un "hypercube" c'est-à-dire un ensemble de cases réparties dans un espace qui n'est pas forcément bidimensionnel. Par exemple si cet espace possède 2 dimensions le plateau est un carré, tandis que s'il possède 3 dimensions c'est un cube. Mais vous pouvez aussi jouer dans un espace à plus de trois dimensions...

L'hypercube possède une longueur de coté paramétrable qui correspond au nombre de jetons qu'il faut aligner pour gagner. Un alignement valide est dans le cas bidimensionnel une diagonale du carré, une ligne verticale ou une ligne horizontale. Dans le cas général, un alignement est valide si on peut parcourir tous les jetons qui le composent de la façon suivante : on part d'une extrémité, on fixe pour chaque dimension si on se déplace et dans quel sens puis on répète le déplacement fixé autant de fois que la longueur de l'hypercube.

Vous pouvez aussi paramètrer les gravités, de sorte que la chute des jetons peut s'effectuer selon plusieurs dimensions, mais l'une après l'autre. Ainsi, si vous activez les deux gravités dans le cas bidimensionnel, le jeton chutera en décrivant un "L".

Vous pouvez aussi choisir le nombre de joueurs dans la partie, qui se déroule chacun pour soi. Chaque joueur peut être contrôlé par une intelligence artificielle ou un joueur humain.

Améliorations possibles

Malgré les nombreuses options disponibles pour le jeu, nous sommes conscients qu'il est encore perfectible. Le jeu étant sous licence GPL vous pouvez contribuez librement à son développement en le modifiant à votre guise. Si vous estimez que ces modifications sont intéressantes vous pouvez nous les envoyer à l'adresse fournie, nous les mettrons en ligne sur le site dans la mesure du possible. Ce fichier contient une liste non exhaustive d'améliorations envisageables.

Traduction

Le jeu a été écrit en français mais vous pouvez envisagez de le rendre disponible dans d'autres langues en traduisant partie ou intégralité du jeu. Ceci comprend le programme proprement dit (menu et texte d'informations) mais aussi les fichiers texte l'accompagnant (lisez-moi.txt, ameliorations_possibles.txt).

Portage sur d'autres plate-formes

Le programme a été réalisé avec à l'aide du langage Objective Caml et sa librairie graphique conçue pour être très portable. Néanmoins nous n'avons compilé le jeu que pour linux et windows. Il serait intéressant de tester le jeu sur d'autres plate-formes. Parmi les erreurs connues sur Windows XP : ouverture de deux fenêtres et problème de ralentissement si on utilise une autre application (par exemple éditeur d'image pour une capture d'écran).

Correction de problèmes Caml

Comme dit précedemment, la librairie graphique Caml a été faite de façon à être peu dépendante de la plate-forme, ce qui réduit malheuresement le nombre de fonctionnalités disponibles. Voici quelques limites rencontrées et dont une solution serait bienvenue :

Icones pour les exécutables

Nous avons réalisé une icone pour le jeu nommé icone.png au format 48 x 48 destinée à être rattachée à l'excutable mais nous ne l'avons pas fait. Cela est possible avec windows mais il ne semble pas y avoir de telle option de compilation pour Objective Caml. Sous linux il semble que cela dépende des bureaux mais cela reste à vérifier.

Interface du jeu

L'interface se compose d'un plateau de jeu carré avec une colonne d'informations sur la droite. Cependant, elle n'est pas très complète et elle pourrait être améliorée sur divers points :

Mode de jeu

Le jeu a été véritablement testé pour des parties deux joueurs avec peu de dimensions et des longueurs de cotés faibles. Il serait utile de trouver des configurations "jouables" c'est-à-dire des parties ni trop facile (un joueur gagne rapidement) ni trop complexe (que seul l'IA peut comprendre). Par exemple trouver une formule empirique reliant nombre de dimensions, de joueurs, de gravités et longueurs des cotés pour que les partie se règlent automatiquement. Une conjecture pour 1 gravité et deux joueurs : "Le joueur qui commence possède une stratégie gagnante si la longueur des cotés est inférieur ou égale au nombre de dimensions." Ceci se vérifie facilement pour une ou deux dimensions et empiriquement pour 3 dimensions.

Notons que le programme a été fait de telle façon que l'on peut a priori paramètrer le jeu avec un nombre de dimensions, de joueurs, de gravités et des longueurs de cotés plus grande. Cependant pour des considérations pratiques (vitesse du jeu, résolution de l'écran, limitation des variables du programme) les paramètres ont été restreints à ceux proposés dans le menu.

Quelques idées de mode de jeu possibles :

Intelligence artificielle

L'algorithme de l'intelligence artificielle consiste dans les grandes lignes à attribuer un nombre de point à chaque case du jeu où l'on peut déposer un jeton et choisir une pour lequel celui-ci est maximum. Ce nombre de points s'obtient par addition des points attribués pour chaque alignement possible à partir de la case considérée. Par exemple pour des cotés de longueur 4, un jeton qui bloque un alignement de 4 jetons adverses rapporte plus de points qu'un jeton qui permettrait au joueur d'aligner 3 de ses jetons. Voir dans le fichier programme.ml (III. "Programme principal"- Intelligence Artificielle) pour plus de détails. L'algorithme précedent donne un résultat satisfaisant pour l'IA, mais on peut imaginer certaines améliorations :

Bogues et autres erreurs

Nous avons essayé de corriger le maximum de bogues en testant le jeu, mais nous ne sommes pas à l'abri d'erreurs (par exemple les fautes d'orthographe !). Les rapports de bogues seront donc les bienvenus, nous tenterons de les corriger si possible. Un certain nombre d'erreur déjà connues a été cité dans les parties "Portage sur d'autres plate-formes" et "Correction de problèmes Caml".

Cette page est conforme aux normes du W3C - Auteur : François WANG - Dernière mise à jour : 3 septembre 2006
Valid XHTML 1.1 Valid MathML 2.0 Valid SVG Valid CSS Amaya, the W3C browser/editor Firefox