View on GitHub

Programmation réseaux

activités autour du jeu de hex

Download this project as a .zip file Download this project as a tar.gz file

Cette page contient les ressources de l'activité du 8 juin 2016 sur la programmation réseau pour le jeu de hex.

Documentation sur l'internet

Un peu de technique (pour les geeks)

Pour l'activité du 8 juin 2016, nous avions déployé un réseau composé de : Les bornes wifi grand public peuvent présenter des limitations sur le nombre de connexion simultanées. Pour palier la limitation de 15 connexions sur nos modèles, le firmware OpenWrt avait été installé sur chaque borne. Le serveur web Nginx était installé sur le Raspberry, ainsi qu'un serveur DNS.

Remettre en oeuvre l'activité

Solution 1 : simple, en local sur chaque machine

Il suffit de travailler, individuellement sur chaque machine, sur les sources. Le fichier hexercice.py est le source à compléter au cours de l'activité. Une même machine peut servir à la fois de serveur et de client. Dans un terminal, exécutez :
python hexercice.py server Bob tablier 11
Dans un autre terminal:
python hexercice.py client 127.0.0.1 Alice tablier 11

Solution 2 : intermédiaire, avec un petit réseau local

Pour remettre en jeu une telle activité en classe, il est suffisant d'utiliser le réseau local déjà en place. Si ce réseau présente trop de limitation, un petit routeur wifi (moins de 50 euros) vous permettra de constituer facilement un petit réseau. Grâce à ce réseau, une machine pourra faire office de serveur et une autre machine sera client. Les joueurs seront sur deux machines différentes du réseau. Il y a aussi la possibilité d'écouter le réseau avec wireshark.

Solution 3 : avancée, avec une IA connectée au réseau

On peut se concerntrer uniquement sur le développement du client et connecter au réseau une intelligence artificielle. L'archive simplhex109 (zip) contient une IA développée par Maximillian Laumeister et que nous avons adapté pour jouer avec notre client python. Il faut d'abord la compiler (make), puis pour lancer l'IA comme serveur :
python connector.py graphic

Aller plus loin

D'autres concepts peuvent être abordés lors de l'activité: programmation objet, développement d'interfaces graphiques, structure union-find, exceptions, ...