Ce que je vais essayer d'améliorer (avec un peu de patience...)
La plupart des points décrits ci-dessous existent déjà dans le jeu actuel, plus complet et plus abouti. Pour le présent site je dois réinventer le code correspondant et/ou l'adapter à la nouvelle technologie.
Ergonomie et fonctionnement du jeu
- Ajouter une aide permettant de demander un conseil pour le prochain mouvement.
- Possibilité d'annuler le dernier mouvement effectué.
- Compléter les traductions des pages du site.
- Revoir l'affichage des menus sur téléphone: Parfois on ne voit qu'une option ou deux au lieu de plusieurs options. On s'en sort en appuyant avec le doigt sur le haut du menu, mais on ne comprend pas toujours ce qu'on doit faire.
- Parfois il devient impossible de déplacer une carte, parce que l'image est incorrecte: par exemple, on croit qu'on a un trois dans sa main, mais c'est juste la fausse image qui est affichée et en réalité il s'agit peut-être d'un six. Ou aussi, parfois, l'ordinateur ne joue pas, et en même temps il vous empêche de jouer parce que ce n'est pas votre tour. Origine du problème? Peut-être une petite panne de communication entre votre appareil et le serveur distant qui joue contre vous... Je cherche encore à comprendre, mais ce n'est pas facile car cela n'arrive pas souvent.
Technique
- Petit tour des diverses configurations: On a parfois de mauvaises surprises avec l'affichage des accents ou avec certains navigateurs qui ne se comportent pas toujours correctement (ou alors pas de la même manière) avec les instructions qu'on leur donne... J'attribue quand-même la palme du plus mauvais navigateur à Internet Explorer.
- Nettoyage et optimisation du code. C'est un travail à refaire en boucle: Quand on développe, on fait des essais, on améliore du code source sans forcément effacer tout de suite ce qui fonctionnait mais qui n'est plus utile. La perfection n'existe pas en informatique, mais pour la compréhension du fonctionnement d'un programme, c'est plus facile à lire quand c'est bien organisé et propre.
Améliorations déjà effectuées (ça bouge tout le temps!)
Ergonomie et fonctionnement du jeu
- Prise en compte immédiat du changement de langue. Auparavent, le changement n'était pas immédiat sur la page courante (déjà affichée).
- Amélioration de quelques petits détails lors de l'animation. Par exemple lorsqu'une carte bougeait et que l'image qui apparaissaut au-dessous n'était pas tout de suite la bonne. Encore quelques "défauts" volontaires, notamment pour ne pas montrer la valeur d'une carte qui ne serait pas au-dessus de la pile (dans le vrai jeu, c'est interdit de soulever une carte pour voir ce qu'on a dessous).
- Correction d'un problème très gênant avec firefox qui n'apparaît pas avec certains autres navigateurs: Lorsqu'on sélectionne une carte qu'on n'est pas supposé tirer (drag and drop avec la souris), la carte prend une vilaine couleur qu'elle a tendance à garder, sauf si on connaît le truc pour cliquer ici ou là. La correction du problème implique de ne pas pouvoir "travailler" correctement avec les options du drag and drop et d'introduire des aberration dans le code.
-
Adaptation permettant de jouer sur petit écran (téléphone).
- Grâce à plusieurs petits changements, la page de saisie des préférences se prête désormais mieux à un petit écran.
- Pour permettre d'agrandir au maximum le tapis où sont disposées les cartes, les messages informatifs (type: "vous avez perdu...") ne sont plus affichés au-dessous du tapis mais à l'intérieur, dans une zone libre.
- Possibilité de cacher le menu, pour gagner de la place.
- Possibilité de bouger une carte en choissant d'abord la carte à jouer, puis la pile de destination de cette carte. C'est essentiel pour pouvoir jouer sur un téléphone, puisqu'en standard ils ne supportent pas le drag and drop: Si on tente de déplacer une carte en la tirant avec le doigt, c'est tout l'écran qui bouge, pas la carte!
- La page qui explique la disposition des cartes a été revue entièrement et propose désormais une interaction qui permet de cliquer sur chaque carte pour obtenir une explication sur celle-ci.
- Les messages informatifs qui apparaissent pendant le jeu ont été traduits.
- On trouve désormais plus vite comment on peut changer de langue, grâce à un menu dédié à cela.
-
Mise en place des niveaux de jeu.
- Niveau de jeu "facile": on voit toutes les cartes de l'adversaire, même celles qui sont dans sa main, et l'adversaire fait comme s'il ne pouvait pas voir les notres.
- Niveau de jeu "moyen": on ne voit pas les cartes en main de l'adversaire (on ne les voit que de dos). Restent visibles: son sabot et ses cartes de réserve, comme lorsqu'on joue au "vrai" jeu (en carton).
- Niveau de jeu "difficile": même chose qu'au niveau moyen, mais en plus l'adversaire tient compte de vos cartes visibles pour éviter de jouer une carte si elle vous donne un avantage pour le coup suivant. Comme vous, il ne voit pas les cartes que vous avez en main.
- Niveau de jeu "très difficile": Je pourrais m'arranger pour que l'adversaire puisse voir également vos cartes en main, mais ça serait un peu triché et j'ai pensé qu'il n'était pas nécessaire de créer un niveau "très difficile". Mais demandez toujours, je peux encore changer d'avis!
- Possibilité de choisir le nombre de cartes sur le sabot au début d'une partie, ce qui détermine la durée de celle-ci.
- Possibilité d'empiler plus d'une carte sur les piles de réserve (au début on ne pouvait pas...).
Technique
- On "Purge" les cartes sur les piles de réserve (dès qu'il y en a plus de 5 on retire celle du dessous), pour éviter qu'il y en ait un trop grand nombre et que cela ne ralentisse l'analyse des prochains mouvements. Le temps perdu n'est pas très perceptible mais cela pourrait se remarquer dans certains cas.
- Révision de quelques requêtes http qui fonctionnaient mais où je n'avais pas appliqué tout de suite le modèle des "Promise", que j'ai mis en place dans un deuxième temps.
- Remplacement de la librairie jquery, que j'ai utilisée au début pour les animations. Trop lourde à télécharger, et c'est tellement plus beau quand on y arrive par soi-même!
- Ouverture d'une session sans avoir besoin de mot de passe, pour maintenir l'état du jeu même quand on change de page pour voir l'aide ou autre chose.