Exemplo n.º 1
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    ui->setupUi(this);
    connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(acceuil()));
    connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(ajoutcours()));
    connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(listeCours()));
    connect(ui->pushButton_5,SIGNAL(clicked()),this,SLOT(coursAttente()));
    connect(ui->pushButton_6,SIGNAL(clicked()),this,SLOT(Conncexion()));
    connect(ui->pushButton_7,SIGNAL(clicked()),this,SLOT(inscription()));
    i=0;
}
Exemplo n.º 2
0
void* handlerConnexion(void *args)
{
  int sock=*(int *)args;
  int read_size;
  char *reponse;
  char *message,client_message[2000];
  char **decouper;
  Dessin *dessin=malloc(sizeof(*dessin));
  dessin->couleur="0/0/0";
  dessin->size="1";
  char *size="1";
  char *couleur="0/0/0";

  int i=0;
  if((read_size=recv(sock,client_message,2000,0))>0)
    {
      decouper=(char **)fStrSplit(client_message,"/");
      if(strcmp(decouper[0],"CONNECT")==0)
	{
	  pthread_mutex_lock(&mutex);
	  nbConnecter++;
	  pthread_mutex_unlock(&mutex);
	  creerJoueur(decouper[1],sock,mesJoueurs);
	  reponse=(char *)malloc(sizeof(char *));
	  strcat(reponse,"WELCOME/");
	  strcat(reponse,decouper[1]);
	  strcat(reponse,"/\n");
	  printf("la reponse est %s \n",reponse);
	  write(sock,reponse,strlen(reponse));
	  notifierConnexion(mesJoueurs,decouper[1],sock);
	}
      if(strcmp(decouper[0],"SPECTATOR")==0)
	{
	  printf("il y'a un spectateur qui veut se connecter \n");
	  mesSpectateurs[nbSpectateur]=sock;
	  pthread_mutex_lock(&mutex);
	  nbSpectateur++;
	  pthread_mutex_unlock(&mutex);
	  
	}
      if(strcmp(decouper[0],"REGISTER")==0)
	{
	  int insc=inscription(decouper[1],decouper[2]);
	  if(insc==0)
	    {
	      char *reponse=(char *)malloc(sizeof(char *));
	  strcat(reponse,"WELCOME/");
	  strcat(reponse,decouper[1]);
	  strcat(reponse,"/\n");
	  close(sock);
	    }
	  else
	    {
	      char *access="ACCESSDENIED/\n";
	      write(sock,access,strlen(access));
	      close(sock);
	    }
	}
      if(strcmp(decouper[0],"LOGIN")==0)
	{
	  int auth=authentification(decouper[1],decouper[2]);
	  if(auth==0)
	    {
	      printf("authentification reussi \n");
	      pthread_mutex_lock(&mutex);
	      nbConnecter++;
	      pthread_mutex_unlock(&mutex);
	      creerJoueur(decouper[1],sock,mesJoueurs);
	      reponse=(char *)malloc(sizeof(char *));
	      strcat(reponse,"WELCOME/");
	      strcat(reponse,decouper[1]);
	      strcat(reponse,"/\n");
	      printf("la reponse est %s \n",reponse);
	      write(sock,reponse,strlen(reponse));
	      notifierConnexion(mesJoueurs,decouper[1],sock);
	    }
	  else
	    {
	      char *access="ACCESSDENIED/\n";
	      write(sock,access,strlen(access));
	      close(sock);
	      printf("echec authentification \n");
	    }

	}

      
    }
  while(nbConnecter!=MaxJoueur)
    {
    }
  pthread_cond_signal(&notifierJoueurs);
  while(tour!=0)
    {
      
      while((read_size=recv(sock,client_message,2000,0))>0)
	{printf("une commande est venu qd meme \n");
	  char** decouper=malloc(sizeof(char *));
	  decouper=(char **)fStrSplit(client_message,"/");
	  printf("command recu :%s \n",client_message);
	  if(strcmp(decouper[0],"SET_COLOR")==0)
	    {
	      printf("il veut definir la couleur \n");
	      char *maCouleur;
	      maCouleur=(char*)malloc(sizeof(char *));
	      strcat((char *)maCouleur,decouper[1]);
	      strcat(maCouleur,"/");
	      strcat(maCouleur,decouper[2]);
	      strcat(maCouleur,"/");
	      strcat(maCouleur,decouper[3]);
	      dessin->couleur=maCouleur;
	    }
	  if(strcmp(decouper[0],"EXIT")==0)
	    {
	      deconnexionJoueur(mesJoueurs,sock,decouper[1]);
	      supprimerJoueur(mesJoueurs,sock);
	      if(dessinateur->socket_id==sock)
		{close(sock);
		  finRound(mesJoueurs,buffer,"NO_ONE");
		  setDessinateur(mesJoueurs);
		  if(fgets(buffer,TAILLE_BUFFER,monFichier)!=NULL)
		    {
		      int n=strlen(buffer);
		      buffer[n-1]='\0';
		      aDessiner=buffer;
		      printf(" le mot a dessiner est %s lol ",aDessiner);
		      EnvoyerRole(mesJoueurs,buffer);
		      flagTimeout=0;
		      break;
		    }
		}
	      close(sock);
	    }
	 
	  if(strcmp(decouper[0],"GUESS")==0)
	    {
	      printf("veut deviner \n");
	      if(strcmp(decouper[1],aDessiner)==0)
		{
		  /*EnvoyerMotDeviner(mesJoueurs,decouper[1],sock,1);*/
		  printf("bien deviner mon pote \n");
		  DeclencherMotTrouver(mesJoueurs,sock);
		  if(flagScore==0)
		    {
		      setScore(mesJoueurs,sock,10);
		      setScore(mesJoueurs,dessinateur->socket_id,10);
		      flagScore++;
		    }
		  else
		    {
		      setScore(mesJoueurs,sock,10-flagScore);
		      setScore(mesJoueurs,dessinateur->socket_id,1);
		      flagScore++;
		    }
		    
		  if(flagTimeout==0)
		    {
		      declencherTimeOut(mesJoueurs);
		      flagTimeout=1; 
		      sleep(timeout);
		      if(flagPass==0)
			{
			  nomGagnant=getNomJoueur(mesJoueurs,sock);
			  EnvoyerScore(mesJoueurs);
			  finRound(mesJoueurs,buffer,nomGagnant);
			  
			  setDessinateur(mesJoueurs);
			  if(fgets(buffer,TAILLE_BUFFER,monFichier)!=NULL)
			    {
			      int n=strlen(buffer);
			      buffer[n-1]='\0';
			      aDessiner=buffer;
			      printf(" le mot a dessiner est %s lol ",aDessiner);
			      EnvoyerRole(mesJoueurs,buffer);
			      flagTimeout=0;
			      break;
			    }
			}
		      else
			{
			  finRound(mesJoueurs,buffer,"NO_ONE");
			  
			  setDessinateur(mesJoueurs);
			  if(fgets(buffer,TAILLE_BUFFER,monFichier)!=NULL)
			    {
			      int n=strlen(buffer);
			      buffer[n-1]='\0';
			      aDessiner=buffer;
			      printf(" le mot a dessiner est %s lol ",aDessiner);
			      EnvoyerRole(mesJoueurs,buffer);
			      flagTimeout=0;
			      break;
			    }
			}
		    }
		 
		    
		}
	      else
		{
		  EnvoyerMotDeviner(mesJoueurs,decouper[1],sock,0);
		  printf("incorrect le mot deviner \n");
		}
	
	
	    }
	   
	  if(strcmp(decouper[0],"TALK")==0)
	    {
	      Talk(mesJoueurs,sock,decouper[1]);
	    }

	  if(strcmp(decouper[0],"PASS")==0)
	    {
	      if(flagMotTrouver==0)
		{
		  /*personne n'a trouver alors on abondonne tranquillement */
		  finRound(mesJoueurs,buffer,"NO_ONE");
			  setDessinateur(mesJoueurs);
			  if(fgets(buffer,TAILLE_BUFFER,monFichier)!=NULL)
			    {
			      int n=strlen(buffer);
			      buffer[n-1]='\0';
			      aDessiner=buffer;
			      printf(" le mot a dessiner est %s lol ",aDessiner);
			      EnvoyerRole(mesJoueurs,buffer);
			      flagTimeout=0;
			      break;
			    }
		}
	      else 
		{
		  /*quelqu'un a deja trouver on attend la fin du timeout */
		  flagPass=1;
		}
	    }

	  if(strcmp(decouper[0],"CHEAT")==0)
	    {
	      pthread_mutex_lock(&mutex);
	      nbCheat++;
	      pthread_mutex_unlock(&mutex);
	      if(nbCheat==3)
		{
		  finRound(mesJoueurs,buffer,"NO_ONE");
		  setDessinateur(mesJoueurs);
		  if(fgets(buffer,TAILLE_BUFFER,monFichier)!=NULL)
		    {
		      int n=strlen(buffer);
		      buffer[n-1]='\0';
		      aDessiner=buffer;
		      printf(" le mot a dessiner est %s lol ",aDessiner);
		      EnvoyerRole(mesJoueurs,buffer);
		      break;
		    }
		}
	    }


	  if(strcmp(decouper[0],"SET_LINE")==0)
	    {
	      printf("il veut faire un setLine \n");
	      char *maLigne;
	      maLigne=(char *)malloc(sizeof(char *));
	      strcat(maLigne,decouper[1]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[2]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[3]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[4]);
	      /*dessin->ligne=maLigne;*/
	      EnvoyerDessin(mesJoueurs,maLigne,size,couleur);
	    }

	  if(strcmp(decouper[0],"SET_COURBE")==0)
	    {
  printf("il veut faire une courbe \n");
	      char *maLigne;
	      maLigne=(char *)malloc(sizeof(char *));
	      strcat(maLigne,decouper[1]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[2]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[3]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[4]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[5]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[6]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[7]);
	      strcat(maLigne,"/");
	      strcat(maLigne,decouper[8]);
	      EnvoyerCourbe(mesJoueurs,maLigne,size,couleur);
	      /* dessin->ligne=maLigne;
	      flagCourbe=1;
	      printf(" la courbe est  %s \n",dessin->ligne);*/
	      
	    }
	  if(strcmp(decouper[0],"SET_SIZE")==0)
	    {
	      printf("il veut definir la taille \n");
	      dessin->size=decouper[1];
		
	    }
	  if(strcmp(decouper[0],"SET_TEST")==0)
	    {
	      printf("on fait le test \n");
	    }
	  /* if(dessin->ligne!=NULL)
	    {
	      printf("le dessin est pres on l'envoi maintenant \n");
	      if(flagCourbe==1)
		{
		  EnvoyerCourbe(mesJoueurs,dessin);
		  flagCourbe=0;
		}
	      else
		{
	      EnvoyerDessin(mesJoueurs,dessin);
		}	     
	      dessin->ligne="0/0/0/0";
	
	      
	      }*/
	} 
      pthread_mutex_lock(&mutex);
      tour--;
      pthread_mutex_unlock(&mutex);
      printf("round numero %d \n",tour);

    }
}
Exemplo n.º 3
0
Utilisateur inscription(){
	char saisie[128],
	     dirUser[256] = "",
	     fileHistorique[256] ="",
	     fileAmi[256] = "",
	     fileMsgEnvoye[256] = "",
	     fileMsgRecu[256] = "";

	Utilisateur user;
	FILE * fic;

	// Saisie du login et mot de passe
	printf("##############################################################\n");
	printf("#                          S'inscrire                        #\n");
	printf("##############################################################\n\n");
	printf("Nom : ");
	scanf("%s", user.nom);
	clear();
	while(1){
		printf("Mot de passe : ");
		scanf("%s", user.password);
		clear();
		printf("Mot de passe (confirmer) : ");
		scanf("%s", saisie);
		clear();
		if(strcasecmp(user.password, saisie)==0)
			break;
		else {
		 	printf("Les mots de passes sont différent!\n");
			printf("Veuillez les resaisir!\n");
		}
	}
	

	// enregistrement de l'utiliseur (users.txt)
	if ((fic = fopen(FILE_USERS, "a" )) < 0) {
		fprintf(stderr, "Erreur : %s ne peut être ouvert\n",FILE_USERS);
		exit(EXIT_FAILURE);
	}

	if(userExist(user.nom, NULL)){
		printf("\nLe nom d'utilisateur exsite déjà!\n");
		printf("Veuillez resaisir les données!\n\n");
		
		return inscription();
	}
	else {

		fprintf(fic, "%s %s\n", user.nom,user.password);
		fclose(fic);

		// créaction du dossier utilisateur
		strcat(dirUser, DIR_USERS);
		strcat(dirUser, user.nom);
		mkdir(dirUser, 0777);

		// création du fichier gérant l'historique de l'utilisateur
		strcat(fileHistorique, DIR_HISTORIQUES);
		strcat(fileHistorique, user.nom);
		strcat(fileHistorique, ".txt");
		fic = fopen(fileHistorique, "w");
		fclose(fic);

		// création du fichier gérant les amis de l'utilisateur
		strcat(fileAmi, dirUser);
		strcat(fileAmi, "/amis.txt");
		fic = fopen(fileAmi, "w");
		fclose(fic);

		// création des fichiers gérant les messages de l'utilisateur
		strcat(fileMsgEnvoye, dirUser);
		strcat(fileMsgEnvoye, "/envoyes.txt");
		fic = fopen(fileMsgEnvoye, "w");
		fclose(fic);

		strcat(fileMsgRecu, dirUser);
		strcat(fileMsgRecu, "/recus.txt");
		fic = fopen(fileMsgRecu, "w");
		fclose(fic);

		printf("\n");
		printf("vous etes maintenant connecte!\n");
		printf("\n");
		
		//ajout dans le fichier historique
		addAction(user.nom,"Création_du_compte");
		return user;
	}
}