1. Introduction

Le but de ce projet a été de créer un jeu de cartes multijoueurs. Dont les règles ne sont pas trop complexes.

(J'ai inventé ce jeu de cartes spécialement pour le projet) Il y a 4 joueurs Il y a en tout 16 cartes : quatre 0, quatre 1, quatre 2, quatre 3 Une manche de déroule en 3 étapes 1.Chaque joueurs reçoit 4 cartes( dont une par main qui est visible de tous à la première manche) 2. Une fois chacun les joueurs en désignent un autre et lui assigne une somme. Cette somme a pour but d'être la même que celle de la main du joueur désigné 3. Chaque "bon pari" fait retourné une carte au joueur précédemment désigné. Le nombre de carte retournée dans la main d'un joueur ne peut qu'augmenter. Les manches ce repète jusqu'à ce qu'il n'en reste plus qu'un qui a encore de cartes retournées (ou que tout les joueurs aient leurs cartes retournées à cause d'un de joueur qui se seraient "entretués") Une fois qu'un joueur n'as plus de cartes cachées, il ne peut plus gagner. Cependant il reste dans la partie et désigne encore un joueur par manche.

2. Matériel et méthodes

Pour ce projet, le matériel nécéssaire a été mon ordinateur et un peu de matière grise. Mais le plus important a été la quantité d'informations primordiale retrouvées sur des sites divers et variés (voir. 6.Annexes).

2.1 Différents aspects

Pour pouvoir faire une connexion Client-Serveur, j'ai utilisé le module "socket" qui est préférable pour des connexions se passant sur une seule et même machine. J'aurais pu faire tourner plusieurs programme client (et c'est ce que j'avais fait) avec un serveur. Cependant puisque les clients se seraient de toute manière trouvés sur la même machine, j'ai jugé cette option inutile dans le cas de ce projet.

J'ai aussi pu voir et apprendre une quantité d'information non-négligeable en rapport avec les inputs. Je saurais désormais refaire un genre de formulaire avec comme fonctionnalités supplémentaire: la "confirmation", le "changement d'avis" ainsi que l'attribution du valeur à une variable tampon permettant la dite "confirmation".

3. Résultats

Ainsi pour jouer, il y a un programme Client qui gère les interactions joueur machines et le programme Serveur qui gère tout ce qui ne devrait pas être en "contact" direct avec le Client. Les joueurs jouent tour par tour via le programme client tandis que le programme serveur tourne à l'arrière

Le résultat de ce travail, correspond pas mal à ce que je m'attendais. Il y a encore un tas de lignes de codes qui pourrait être perfectionnées. Afin d'avoir un meilleur rendu graphique ou que le logiciel soit moins facile à faire bugger.

4. Discussion

Mis à part le fait que les programmes remplissent le but auxquels il étaient destinés, la multitude de boucle pourrait être un obstacle à un niveau de programmation plus élevé. Ma plus grosse erreur, malgré l'intention d'originalité, a été de vouloir créer mon propre jeu de cartes pour ensuite l'adapter sur ordinateur. Je dis cela pour plusieurs raisons :

1. Créer ce jeu ne m'as pas pris longtemps (2 ou 3 jours). Cependant avant le début de la création de ce jeu, j'ai passé plus de trois semaine à tenter de faire un jeu de cartes de toute pièce. (Cela reste tout de même très amusant)

2. Une deuxième critique pourrait être qu'étant donné qu'il est possible de faire de jeu informatiques qui ne peuvent pas être refait dans le monde "réel", me forcer à faire un jeu de cartes venant de ce monde réel a été une grande restriction (bonne et mauvaise selon moi). Puisque c'est avec des restriction qu'on trouve des idées. Tout comme si il y a trop de restrictions les bonnes idées s'en vont. La question est reste celle du juste milieu. J'estime ne pas m'en être trop éloigné.

5. Conclusion

Comme avec le projet H, l'envie de perfectionner certaines parties du code qui n'étaient pas très importantes a réduit le temps bien investit sur ce projet. Ce projet m'a permis: de me familiariser avec certains moyens de communication Client-Serveur, d'approfondir et aiguiser mes connaissances sur Python, de façonner la logique nécessaire à la création d'un jeu. Cela m'a aussi permit de toucher à un peu de aléatoire. Et surtout après plusieurs heures de programmation, de m'amuser un peu.

6. Annexes

Voici quelques sites parmi la multitude qui m'ont été d'une grande aide :

https://www.tutorialspoint.com/python/index.htm https://python.developpez.com/ http://stackoverflow.com/

Et bien d'autres que j'ai découvert en tapant (la plupart du temps) erreur que le programme me retournait