Skip to content
Snippets Groups Projects
Commit 3a706fea authored by ZIMMERLÉ Nathan's avatar ZIMMERLÉ Nathan
Browse files

Tron n joueurs

parent 9670a40b
Branches
Tags v2.1
No related merge requests found
......@@ -14,40 +14,37 @@ namespace TronServeur
static void Main(string[] args)
{
Tron.Tron myTron; // Moteur du jeu
byte nJoueurs = 2; // Nombre de joueurs
byte frequence = 1; // Temps du tour de jeu (en dixieme de s)
byte nJoueurs = 3; // Nombre de joueurs
byte frequence = 4; // Temps du tour de jeu (en dixieme de s)
byte taille = 60; // Taille du terrain
// ************************************* Intitialisation partie
// ************************************* Initialisation partie
Console.WriteLine("Initialisation");
// TODO Creation de la socket d'écoute TCP
// Creation de la socket d'écoute TCP
Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// TODO Creation du tableau des sockets connectées
// Creation du tableau des sockets connectées
Socket[] socketJoueurs = new Socket[nJoueurs];
bool[] joueursConnectes = new bool[nJoueurs];
// Creation du moteur de jeu
myTron = new Tron.Tron(nJoueurs, taille);
// TODO Bind et listen
// Bind et listen
listenSocket.Bind(new IPEndPoint(IPAddress.Any, 8000));
listenSocket.Listen(10);
Console.WriteLine("Attente d'une nouvelle connexion ...");
// TODO Acceptation des clients
// Acceptation des clients
for (int i = 0; i < nJoueurs; i++)
{
socketJoueurs[i] = listenSocket.Accept();
Console.WriteLine("Nouvelle connexion : " + socketJoueurs[i].RemoteEndPoint);
joueursConnectes[i] = true;
}
// TODO Envoie des paramètres
// Envoie des paramètres
for (int i = 0; i < nJoueurs; i++)
{
byte[] buffer = new byte[] { nJoueurs, taille, frequence, (byte)i };
......@@ -60,7 +57,7 @@ namespace TronServeur
// Tant que la partie n'est pas finie
while (!myTron.IsFinished())
{
// TODO Réception de la direction de chaque joueur
// Réception de la direction de chaque joueur
byte[] bufferDirection = new byte[nJoueurs];
for (int i = 0; i < nJoueurs; i++)
{
......@@ -70,20 +67,17 @@ namespace TronServeur
socketJoueurs[i].Receive(dirRecue);
bufferDirection[i] = dirRecue[0];
}
catch
catch(Exception e)
{
bufferDirection[i] = 4;
socketJoueurs[i] = null;
if (socketJoueurs.Count() == 1)
bufferDirection[i] = 5;
}
}
// TODO Calcul collision : myTron.Collision(byte[] <toutes les directions>);
// Calcul collision : myTron.Collision(byte[] <toutes les directions>);
myTron.Collision(bufferDirection);
// TODO Envoie des directions de tous les joueurs à tous les clients
// Envoie des directions de tous les joueurs à tous les clients
for (int i = 0; i < nJoueurs; i++)
{
if (socketJoueurs[i] != null)
......@@ -95,14 +89,14 @@ namespace TronServeur
// ************************************* Conclusion
System.Console.WriteLine("Conclusion");
// TODO Fermeture des sockets connectées
// Fermeture des sockets connectées
for(int i = 0; i < socketJoueurs.Length; i++)
{
if (socketJoueurs[i] != null)
socketJoueurs[i].Close();
}
// TODO Fermeture socket d'écoute
// Fermeture socket d'écoute
listenSocket.Close();
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment