#include #include "Serveur.h" #include "Methodes.h" /** protocole de transfert: direction du perso: ↑→↓← ( alt24 à alt27 ) si perso ne bouge pas: ■ ( alt254 ) a faire: commande reset */ int main() { ///creation du serveur Serveur serveur(7856, 2); if(!serveur.rendreUtilisable()) { std::cout << "Erreur d'initialisation du serveur!" << std::endl; return -1; } ///symboles envoyer = '○', fini = '$', arreter = '┼', bougePas = '■', reset = '/' char envoyer = 9, fini = 36, arreter = 197, bougePas = 254, reset = 47; ///attribution du numero du joueur char id = '0'; serveur.envoyer(&id, 0, 1); id = '1'; serveur.envoyer(&id, 1, 1); /// attributs bool continuer = true; unsigned int taille = 1; char joueur1 = bougePas, joueur2 = bougePas; std::string cheminNiveau; char niveau[18*24]; bool changerNiveau = true, isreset = false; ///boucle evenementielle while(continuer) { if(changerNiveau || isreset) { if(!isreset) cheminNiveau = niveauSuivant("Niveaux/0index.txt", cheminNiveau); else isreset = false; if(!chargerNiveau(niveau, "Niveaux/"+cheminNiveau)) { std::cout << "Erreur de chargement du niveau : " << cheminNiveau << std::endl; serveur.envoyer(&arreter, 0, taille); serveur.envoyer(&arreter, 1, taille); return -1; } else { serveur.envoyer(&envoyer, 0, taille); serveur.envoyer(&envoyer, 1, taille); for(int i = 0;i<18*24;i++) { serveur.envoyer(&niveau[i], 0, taille); serveur.envoyer(&niveau[i], 1, taille); } changerNiveau = false; } } else { serveur.envoyer(&joueur2, 0, taille); serveur.envoyer(&joueur1, 1, taille); } serveur.recevoir(&joueur1, 0, taille); serveur.recevoir(&joueur2, 1, taille); if(joueur1 == arreter) { serveur.envoyer(&arreter, 1, taille); save("Niveaux/0index.txt", cheminNiveau); return 0; } else if(joueur2 == arreter) { serveur.envoyer(&arreter, 0, taille); save("Niveaux/0index.txt", cheminNiveau); return 0; } else if(joueur1 == fini && joueur2 == fini) changerNiveau = true; else if(joueur1 == reset || joueur2 == reset) isreset = true; } return 0; }