Accueil Enseignement PPFA

Projet PFA

Présentation
Server Discord
Groupes
Semaines
Git Paris Saclay
Ajoutez moi à votre git : antoine.lanco

Liens Utiles

Doc Ocaml
Cours PFA
Try Ocaml Pro

Files

ocamlbuild

Makefile

dune

dune
dune-project

Socket

Socket-Client

Présentation

L'objectif de ce projet est de créer un jeu tour par tour où deux équipes de trois personnages s'affrontent sur une carte.

La partie se déroule sur une carte de taille arbitraire composée de cellules vides, de murs et de joueurs.

Sur cette carte s'affrontent deux équipes de trois personnages qui jouent chacun leur tour (en suivant l'ordre : personnage 1 équipe 1, personnage 1 équipe 2, personnage 2 équipe 1, ...).

Chaque personnage à ses propres caractéristiques avec des contraintes (définies plus bas) et une attaque.

Chaque personnage peut faire trois actions :

L'objectif est bien sûr de vaincre l'équipe adverse.

Contraintes/Équilibrages

Pour pouvoir s'affronter, les personnages doivent être équilibrés

Contraintes :

Protocole


Intro

Dans OCaml tout est typé, mais pour passer les infos dans le réseau, il faut tout transformer en chaine de caractères ...


Map


Personnages


Actions

Les personnages peuvent faire deux actions :

Exemple d'une action:

Attaquer la position (20,10) -> "1|20|10"

Quand c'est à vous de jouer vous devez envoyer une liste d'actions séparée par ';'.

Exemple :

Se déplacer en (20,10) et attaquer en (25,10) -> "2|20|10;1|25|10"


Communications

Pour s'affronter je vais mettre a disposition un serveur de matchmaking auquel vous allez devoir vous connecter grace au socket de la Lib Unix.

Client

Serveur

Commentaire

Nom

->

Le joueur envoie son nom au serveur

Perso1

->

Puis ses personnages

Perso2

->

Perso3

->

<-

Num

Le serveur envoie le numero du personnage a jouer (0-5)

<-

Map

Le serveur verifi que les personnages respecte bien les contraintes, les places sur la map et l'envoie au joueur

<-

Liste

Liste des personnages

Actions

->

Le joueur envoie sa liste d'actions

...

<-

Num

<-

Map

<-

Liste

Actions

->

<-

Num

Si le serveur revoie 6 c'est le joueur 1 qui a gagné et 7 si c'est le joueur 2

Exemple de communication :


Pour lancer le serveur sur votre MACHINE DE LA FAC :
/./home/tp-home002/alanco/server ip
Si vous ne préciser pas d'ip le serveur se lance sur l'ip "127.0.0.1"