1. Introduction

Le jeu UNO est un jeu de cartes où chaque joueur essaie d’être le premier à s’être débarrassé de toutes ses cartes. Au début du jeu, chaque joueur est distribué 7 cartes, les cartes restantes constituante « la réserve ». Une carte est choisie au hasard parmi les cartes de la réserve pour servir de base de départ d’une pile sur laquelle les joueurs vont essayer d’ajouter leur cartes en suivant des règles bien précises.

Contrairement à d’autres jeux de cartes, UNO emploie un jeu de cartes spécialement conçu pour le jeu.

Les cartes sont reparties par couleur, avec pour chaque couleur :

  • 19 cartes numérotées 0-9
  • 2 cartes « +2 », qui oblige le jouer suivant de prendre 2 cartes de la réserve.
  • 2 cartes « inversion » qui inverse le sens du jeu.
  • 2 cartes « passe ton tour » qui font manquer son tour au joueur suivant

En plus de celles-ci, il y a 4 cartes « joker » qui peuvent être posé sur n’importe quelle carte, et 4 cartes « +4 » qui peuvent être placées sur n’importe quelle carte ET qui oblige le joueur suivant à prendre 4 cartes de la réserve.

Chaque joueur doit essayer à tour de rôle de placer une carte sur la pile. Seuls des cartes de même couleur, ou de même chiffre, que la dernière carte sur la pile, ou un joker sont acceptées sur la pile. En plaçant un joker, il choisit une couleur que le joueur suivant doit respecter. Si un joueur ne tient pas de carte qui respecte ces conditions, il doit en prendre de la réserve jusqu’à ce qu’il obtienne une qui peut être placer sur la pile.

Avant de placer une carte, chaque joueur doit d’abord suivre les instructions indiquées sur la carte qui vient d’être posée – par exemple un « +4 » oblige le joueur suivant de repêcher 4 cartes de la réserve avant de jouer son tour. Il se peut aussi que l’ordre de jeu soit perturbé par une carte, par exemple avec la carte « inversion », qui fait repartir l’ordre de jeu dans le sens inverse, ou la carte « passe ton tour ». Le gagnant du jeu est le joueur qui réussit à ne plus avoir de carte en main.

L’idée principale était de créer un site web sur lequel nous pourrions jouer au jeu de cartes UNO comme expliqué ci-dessus soit contre un ou plusieurs ordinateurs, soit contre un ou plusieurs joueurs sur d’autres écrans.

Les enjeux étaient de créer un serveur afin de connecter plusieurs utilisateurs et partager les informations nécessaires au bon continument du jeu. Les informations nécessaires ici concernent les cartes de chaque joueur, la dernière carte qui aurait été posée sur la pile, un signe pour faire savoir à chaque joueur qui doit jouer, et empêcher les autres joueurs de poser une carte à ces moments. Les enjeux seraient également de trouver une façon de représenter toutes les cartes (nombre, couleur, cartes spéciales) ainsi que le nombres de fois qu’elles apparaissent dans un jeu de carte. De plus se souvenir de quelles cartes sont en main avant et après d’en poser et piocher, déterminer s’il est possible de poser une carte, et si la partie est jouée contre un ordinateur, de choisir quelle carte à poser parmi celles qui sont possibles.

2. Matériel et méthodes

Le jeu a été écrit en php, html et css et comprend 7 fichiers.

2.1 Matériel

  • Ordinateur Mac avec Mac OS X
  • Éditeur de texte php, html, css
  • Apache

2.2 Méthode

Lorsque le matériel mentionné ci-dessus est installé, le code peut être lu.

Le site web démarre lorsque l’utilisateur charge la page index.php. Ceci appelle la page index.html qui affiche la première page du site :

index.html : Ceci est la première page qui s’affiche et où il faut insérer le nom d’utilisateur afin d’avoir accès au jeu. Tant que rien n’est inséré, cette page se rechargera.

second_page.php : Ceci n’est qu’un bout de code pour sauvegarder le nom inséré à la première page et tout autre information qui aurait pu être voulu à la prochaine page, et ce qui permet de les afficher à la page suivante.

main.php: Ce fichier contient le code pour l’initiation du jeu. Ici, toutes les variables sont remise à zéro pour ne pas commencer avec des variables toujours sauvegardées de la dernière partie.

playable.php: Ceci contient presque toutes les fonctions qui font avancer le jeu. Il permet de poser des cartes et fait jouer l’ordinateur en retour.

Les langages utilisés sont PHP, et html pour en faire un site web, et CSS pour configurer le site.

3. Résultats

Le site a une page d’introduction pour expliquer les règles utilisées et insérer le nom d’utilisateur. En appuyant sur le bouton « Start game » la partie débute.

1. welcome page.png, mai 2021

Le site redirige l’utilisateur vers une nouvelle page web et à la distribution des cartes. Les cartes sont immédiatement distribuées aléatoirement à l’utilisateur et au 2ème joueur. La page web affiche uniquement nos cartes disposées en lignes, la carte du milieu posée sur laquelle il faut jouer, un bouton « Leave game » afin de quitter la partie et une case pour annoncer si la carte choisie peut être jouée.

3. dashboard.png, mai 2021

La partie fonctionne et à tour de rôle, l’utilisateur et l’ordinateur posent leurs cartes. Lorsqu’une carte sélectionnée n’est pas jouable (donc qu’elle ne peut pas être posée par-dessus celle sur la pile car elle n’est ni de la même couleur, ni du même chiffre), un message s’affiche en bas de l’écran nous l’indiquant et l’utilisateur doit rejouer.

L’ordinateur ne joue pas automatiquement dès que l’utilisateur pose sa carte. Il faut en effet qu’il appuie sur une de ses propres cartes pour voir la carte choisie par l’ordinateur, puis choisir sa carte à jouer.

5. error message.png, mai 2021


La partie se termine lorsqu’un joueur ne peut plus jouer, soit par manque de carte, soit car aucune carte dans leur main ne peut être posée sur la pile du milieu. A ce moment, la page devient une page blanche et il faut revenir à la page de départ.

4. Discussion

Premièrement le jeu a dû être largement simplifié afin de pouvoir rendre un projet fonctionnant dans les délais. Un jeu d’UNO avec des cartes devrait se jouer avec 19 cartes numérotées de 0 à 9 de chaque couleur (rouge, bleu, vert, jaune) et des cartes spéciales mentionnées dans l’introduction. Celui-ci ne comporte que les cartes numérotées de 0 à 9 de chaque couleur.

De plus, la complexité du jeu vis-à-vis du nombre de cas à distinguer selon les cartes posées (faire piocher des cartes, sauter le tour à un joueur, …) a également empêché de créer un jeu avec toutes les cartes du jeu original.

Le jeu lui-même fonctionne jusqu’à ce qu’un joueur ne puisse plus jouer, dans quel cas une page blanche s’affiche. Ceci est dû au manque d’une partie de code déterminant ce qu’il faut faire à la fin d’une partie.

Savoir par où commencer a été le défi le plus difficile à surmonter. Une partie qui aurait également dû être revu, était de bien organiser mon code dès le début. En effet, cela m’a pris un peu de temps afin de tout réorganiser lorsque le nombre de lignes s’est beaucoup agrandi car il était quelques fois compliqué de retrouver où chaque étape commençait et finissait.

5. Conclusion

L’objectif de ce projet a été atteint, car le résultat permet de jouer à UNO contre l’ordinateur. Il pourrait être amélioré en ajoutant plus d’intelligence dans le jeu de l’ordinateur et/ou en augmentant le nombre de joueurs pour en créer un jeu multi-joueurs. Il y a également plein de variante des règles du jeu qui auraient pu être implémentées et offertes comme options aux joueurs.

Références