Othello (Tech 2)
But du projet : Réaliser un client et un serveur du jeu Othello en langage C, C embed et Perl tk / gtk.
Othello : le jeu
Othello® est un jeu de stratégie à deux joueurs : Noir et Blanc.
Il se joue sur un plateau unicolore de 64 cases, 8 sur 8, appelé othellier. Les joueurs disposent de 64 pions bicolores, noirs d’un côté et blancs de l’autre. Par commodité, chaque joueur a devant lui 32 pions, mais ils ne lui appartiennent pas, et il doit en donner à son adversaire si celui-ci n’en a plus. Un pion est noir si sa face noire est visible et blanc si sa face blanche est sur le dessus.
But du jeu :
Avoir plus de pions de sa couleur que l’adversaire à la fin de la partie. Celle-ci s’achève lorsqu’aucun des deux joueurs ne peut plus jouer de coup légal. Cela intervient généralement lorsque les 64 cases sont occupées.
Description du projet :
1) Le serveur de Jeu : (C – Perl Embed)
Les parties à coder en C sont :
- création des sockets
- multiplexage des sockets
Les parties à coder en Perl sont :
- lecture/écriture sur les sockets
- analyse des données récupérées
Les langages utilisés pour les autres parties sont au libre choix. Le serveur doit gérer les connexions des clients et les parties, il doit donc être capable d’en gérer plusieurs en simultané. Le serveur est le seul interlocuteur des clients, ceux-ci ne peuvent pas communiquer directement entre eux.
Le serveur est l’arbitre de la partie, c’est-à-dire que lui seul dit ce que doivent faire les clients :
- dire si le coup proposé est valide.
- donner les coordonnées des pions retournés après un coup.
- dire si le joueur peut passer son tour (le serveur doit vérifier qu’il ne peut vraiment pas jouer).
- si la partie est perdue, gagnée ou égalisée.
- il renvoie BAD au client si la commande lui est inconnue.
- …
Il peut être fait en Perl/Tk ou Perl/Gtk. Celui ci doit pouvoir afficher la position des pions sur la table de jeu et le score des joueurs à chaque instant de la partie. Le client peut avoir d’autres actions comme par exemple, une IA (Intelligence Artificielle), un chat, des skins…
Ce projet est à réaliser par groupe de 3 / 4 personnes. Il est nécessaire de respecter le protocole qui a été défini pour la partie réseau.