begin process at 2012 05 29 13:02:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Le multithreading et variable générales


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Le multithreading et variable générales

lundi 26 septembre 2011 à 11:57:42 | Le multithreading et variable générales

vbfrance102

salut

si qlq'un peut m'aider je suis débutant en c et j'essaye de faire une petit jeu qui a 1 threads sous forme de boucle infinie et je veux qu'il me récupère régulièrement la valeure d'un variable voici le code :


Code C/C++ :
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <pthread.h>
#define LEFT 75
#define RIGHT 77
#define ESC 27



void commande(int *v,char d){
     if((v[0]!=39)&(d==RIGHT)){v[0]+=1;clrscr();route();afficheavion(v);}
     if((v[0]!=1)&(d==LEFT)){v[0]-=1;clrscr();route();afficheavion(v);}
     if(d==ESC){info("APPUYER SUR UNE TOUCHE POUR CONTINUER");
                getche();
                
//affichage de la bombe *********************************
void affichebombe(int *e){
    
     
     gotoxy(e[0],e[1]);printf("              ");   
     gotoxy(e[0],e[1]+1);printf(" %c%c%d ",178,178,un);
     gotoxy(e[0],e[1]+2);printf(" %c%c%d  %d ",178,178,e[0],e[1]+1);
     gotoxy(e[0],e[1]+3);printf("             ");
     
     
    }
    
//mouvement de la bombe *********************************
void* mvtbombe(){
      int i,j;
      int  bombe[2]={2,1}; 
      for(;;){
      affichebombe(bombe);
      bombe[1]=1;
      for (i=0;i<21;i++)
      {            
      Sleep(230);  
      bombe[1]++; 
      affichebombe(bombe); 
         
      //--> c'est d'ici que je veux extraire la position de la bombe pour verifier s'il ya un contacte avec l'avion 
      
      }
      }
   }
   
   
   
  main(){
      
     struct XY {int x,y;};
     int i,j;   
     int avion[2]={20,18}; 
     int bombe[2]={2,1}; 
     int bombe2[2]={10,1}; 
     int e[2]={2,1};         
    
     char touche;
          
     route();
     afficheavion(avion);
        
     affichescore(30,40,5,3);
     pthread_t ta;// On crée un thread ta
     
     affichebombe(bombe);
        
    pthread_create(&ta, NULL, mvtbombe, NULL);// Permet d'exécuter la fonction mvtbombe (mouvement de la bombe) en boucle infinie
           
     
 for(;;){ 
                  
              
        //  verification du contact avec l'avion*******************************
        // c'est ici que je veux la valeur de la position de la bombe pour verifier s'il y a contact avec l'avion
                            if(avion[0]==bombe[0])&
                            (avion[1]==bombe[1]||
                             avion[1]==bombe[1]+2||
                             avion[1]==bombe[1]+3||
                             avion[1]==bombe[1]+4||
                             avion[1]==bombe[1]+5||
                             avion[1]==bombe[1]+6||
                             avion[1]==bombe[1]+7||
                             avion[1]==bombe[1]+1
                             avion[1]==bombe[1]-2||
                             avion[1]==bombe[1]-3||
                             avion[1]==bombe[1]-4||
                             avion[1]==bombe[1]-5||
                             avion[1]==bombe[1]-6||
                             avion[1]==bombe[1]-7){
                              
                                                 info("           VOUS ETES MORT");
                                                 }*/
                                                 
    while (kbhit()){
                                         touche = getch();
                                         commande(avion,touche);
                                         affichescore(30,40,5,3);
    
}
}
                                  
 
     
 getch();
}


merci d'avance
mardi 27 septembre 2011 à 07:20:09 | Re : Le multithreading et variable générales

patatalo

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
salut,

Ton programme a 2 threads minimum pour être multithread, le principal etant compté.

Pour acceder à une variable commune, il faut la proteger par mutex. Il y a quelques rares exceptions suivant la variable et son utilisation.

@++
mercredi 28 septembre 2011 à 01:18:28 | Re : Le multithreading et variable générales

vbfrance102




salut

je sais patatalo
mais comment faire c'est ça le problème


Cette discussion est classée dans : int, include, bombe, avion, if


Répondre à ce message

Sujets en rapport avec ce message

Segmentation fault sur un tableau de char [ par MaxSoldier ] Bonsoir tout le monde !Je me suis mis au C/C++ sous linux il y a quelques jours et j'ai de nombreuses erreur de dépassement de tampon (segmentation fa Lecture fichier impossible avec SDL [ par CCJ ] Hello.j'utilise SDL pour me faire un petit jeu 2D. Seulement je recontre actuellement un petit probleme. Il semblerait en effet qu'il bloque l'utilisa Sauvegarder [ par buguetj ] #include #include #include #include #include using namespace std;const int MAXNAMESIZE=3; int main(int nNumerofArgs, char* pszAr socket raw [ par moi zork ] Bonjour,Je suis entrain de m'entrainer sur les socket raw et je bute sur :#include #include using namespace std;int main (void){    int sock;  sock = un programme qui tourne pas [ par youssefmahdia ] bonjour,voila, ce programme ne tourne pas,#include  #include  main() { int i,j; int s[5][5]; for(i=0;i {for(j=0;j s[i][j]=(j/(int)pow( Suite de Fibonacci [ par BastienL21 ] Bonjour à tous, débutant en C, j'ai écris un code permettant d'éxecuter la suite de Fibonacci en additionnant les deux nombres précédant, stockés dans Unix: sockets & Co [ par bounkolh ] Bonjour, Je cherche de l'aide pour compléter les ............ du fichier client.c permettant d'interroger le serveur implementé par server.c. Listing undefined reference to `cvCaptureFromCAM' [ par orchido ] Bonjour à tous!Après une journée passée à rechercher sur google et autre forum, je me décide à poster ici.Je voudrais faire la capture d'image provena maths et autres [ par jeanphilippe37 ] Slt, j'ai fais un prgm de maths pour savoir les nbrs premiers mais, quand je mets system("pause"), j'ai une erreur, pouvez vous me corriger ? problèmes ds mon prog [ par wildTiger ] salut tt le mondeje veux dessiner des points en cliquant par la souris sur ma fenêtre. mais mon prog ne marche pas. est ce que qlq'1 peut m'aider?voic


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales