Beispiel #1
0
llist supprimerElement(llist liste, int valeur)
{
    /* Liste vide, il n'y a plus rien à supprimer */
    if(liste == NULL)
        return NULL;

    /* Si l'élément en cours de traitement doit être supprimé */
    if(liste->val == valeur)
    {
        /* On le supprime en prenant soin de mémoriser
        l'adresse de l'élément suivant */
        element* tmp = liste->nxt;
        free(liste);
        /* L'élément ayant été supprimé, la liste commencera à l'élément suivant
        pointant sur une liste qui ne contient plus aucun élément ayant la valeur recherchée */
        tmp = supprimerElement(tmp, valeur);
        return tmp;
    }
    else
    {
        /* Si l'élement en cours de traitement ne doit pas être supprimé,
        alors la liste finale commencera par cet élément et suivra une liste ne contenant
        plus d'élément ayant la valeur recherchée */
        liste->nxt = supprimerElement(liste->nxt, valeur);
        return liste;
    }
}
Beispiel #2
0
list supprimerElement(list liste, point pValeur)
{
    //Si la liste est vide est retourne NULL
    if(liste == NULL)
        return NULL;
    
    //Le Point est trouvé
    if(equals(liste->valeur,pValeur))
    {
        //On garde l'adresse de l'élément suivant
        element* tmp = liste->pSuivant;
        
        //On supprime l'élément
        free(liste);
        
        //On retourne l'adresse de l'élement suivant
        return tmp;
    }//Le point n'est pas trouvé
    else 
    {
        //Par recursivité en cherche à l'élément suivant
        liste->pSuivant = supprimerElement(liste->pSuivant, pValeur);
        return liste;
    }
}
Beispiel #3
0
void fonc_evenementielle_USER2 (list l, pthread_t sender)
{
	printf("fonc_evenementielle_USER2\n");

	l = supprimerElement(l,sender);

}
Beispiel #4
0
// Effacer tous les element ayant une certaine valeur
t_element *supprimerElement(t_element *liste, int valeur)
{
	if (liste == NULL)
		return (NULL);

	if (liste->val == valeur)
	{
		t_element *tmp;
		tmp = liste->next;
		free(liste);
		tmp = supprimerElement(tmp, valeur);
		return (tmp);
	}
	else
	{
		liste->next = supprimerElement(liste->next, valeur);
		return (liste);
	}
}
WidgetGestionScenes::WidgetGestionScenes(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::WidgetGestionScenes)
{
    ui->setupUi(this);

    this->etatInterface(false);

    monMenu = new QMenu(this);
    menuScenario = new QAction(this);
    menuScene = new QAction(this);

    menuScenario->setText("Nouveau scénario");
    menuScene->setText("Nouvelle scène");

    monMenu->addAction(menuScenario);
    monMenu->addAction(menuScene);

    connect(menuScenario, SIGNAL(triggered()), this, SLOT(nouveauScenario()));
    connect(menuScene, SIGNAL(triggered()), this, SLOT(nouvelleScene()));

    connect(ui->boutonSupprimer, SIGNAL(clicked()), this, SLOT(supprimerElement()));


    ui->boutonAjouter->setMenu(monMenu);


    this->afficherListeScenariosEtScenes();


    ui->boutonEnregistrer->setDisabled(true);
    this->menuScene->setDisabled(true);

    connect(ui->treeWidget, SIGNAL(clicked(QModelIndex)), this, SLOT(activerAffichageAppareils()));



    QString addrApp, uuidApp;

    GestionXML::lireAdaptateur(&addrApp, &uuidApp);

    GestionDMX *interfaceDMX;
    interfaceDMX = GestionDMX::getInstance();
    interfaceDMX->setAdresse(addrApp);

    interfaceDMX->seConnecter();
    interfaceDMX->resetDMX();

    this->donneesModifier = false;


}
Beispiel #6
0
//créé l'arbre de huffman à partir du tableau de répétition
Arbre * creer_arbre_huffman(int tab_repetition[])
{
    Arbre * a;
    Arbre * a1;
    Arbre * a2;
    liste_chainee *liste;
    int taille_fichier = somme_element(tab_repetition);
    
    liste = tab_to_list(tab_repetition);
    afficher(liste);
    while(liste->arbre->proba != taille_fichier)
    {
        a1 = recherche_mini(liste);
        liste = supprimerElement(liste, a1);
        a2 = recherche_mini(liste);
        liste = supprimerElement(liste, a2);
        a = ajouter_nouveau_parent(a1,a2,0,((a1->proba) +(a2->proba)));
        //printf("proba : a1 %d  a2 %d  a %d \n",a1->proba,a2->proba,a->proba);
        liste= ajouterElement(liste, a);
    }
    
    return liste->arbre;
}
Beispiel #7
0
void donnerCoup(SDL_Renderer *rendu, struct listeAnimal *listeAnimaux, struct parametreAnimaux *tabParam, Personnage *personnage, Images *toutesLesImages, TTF_Font *police, ListeMonstres *listeMonstres, ParametresMonstres *tabParamMonstres, ListeBatiments *listeBat)
{
    animationCoup(rendu, personnage, toutesLesImages, listeAnimaux, tabParam, police, listeMonstres, tabParamMonstres,listeBat);
    //après on regarde les dégats


    int distanceMax = 100;
    int coordPerso[2] = {(personnage->coordXA + personnage->coordXB)/2, (personnage->coordYA + personnage->coordYB)/2};

    int distance = distanceMax;
    int vertical = 0;
    int coordBete[2][2];
    int contactBete = False, contactAnim = False;


    int n1 = nombreElementListeMonstres(listeMonstres);
    int n2 = tailleListe(listeAnimaux);

    listeMonstres->cle = listeMonstres->premier;
    debut(listeAnimaux);
    int i = 0, p = 0, e = 0;

    while (i < n1 || p < n2)
    {
        contactBete = contactAnim = False;
        if (testChampsVisionMonstres(listeMonstres, personnage) == True)
        {
            coordBete[0][0] = listeMonstres->cle->valeur->coordx + LARGEUR_TILE/2;
            coordBete[0][1] = listeMonstres->cle->valeur->coordy + LARGEUR_TILE/2;
        }
        if (testChampsVisionAnimaux(listeAnimaux, personnage) == True)
        {
            coordBete[1][0] = listeAnimaux->cle->valeur->coordx + LARGEUR_TILE/2;
            coordBete[1][1] = listeAnimaux->cle->valeur->coordy + LARGEUR_TILE/2;
            printf("mededed\n");
        }

        switch(personnage->orientation)
            {
            case DROITE:
                for(e = 0; e < 2; e++)
                {
                    if (coordBete[e][0] >= coordPerso[0] && coordBete[e][0] <= coordPerso[0] + distanceMax)
                    {
                        if ((coordBete[e][1] >= (coordPerso[1] - distanceMax/2)) && coordBete[e][1] <= (coordPerso[1] + distanceMax/2))
                        {
                            if (e == 0)
                                contactBete = True;
                            else
                                contactAnim = True;
                        }
                    }
                }
                break;
            case GAUCHE:
                for (e = 0; e < 2; e++)
                {
                    if (coordBete[e][0] >= coordPerso[0] - distanceMax && coordBete[e][0] <= coordPerso[0])
                    {
                        if (coordBete[e][1] >= coordPerso[1] - distanceMax/2 && coordBete[e][1] <= coordPerso[1] + distanceMax/2)
                        {
                            if (e == 0)
                                contactBete = True;
                            else
                                contactAnim = True;
                        }
                    }
                }

                break;
            case HAUT:
                for (e = 0; e < 2; e++)
                {
                    if (coordBete[e][1] >= coordPerso[1] - distanceMax && coordBete[e][1] <= coordPerso[1])
                    {
                        if (coordBete[e][0] >= coordPerso[0] - distanceMax/2 && coordBete[e][0] <= coordPerso[0] + distanceMax/2)
                        {
                            if (e == 0)
                                contactBete = True;
                            else
                                contactAnim = True;
                        }
                    }
                }
                break;
            case BAS:
                for (e = 0; e < 2; e++)
                {
                    if (coordBete[e][1] >= coordPerso[1] && coordBete[e][1] <= coordPerso[1] + distanceMax)
                    {
                        if (coordBete[e][0] >= coordPerso[0] - distanceMax/2 && coordBete[e][0] <= coordPerso[0] + distanceMax/2)
                        {
                            if (e == 0)
                                contactBete = True;
                            else
                                contactAnim = True;
                        }
                    }
                }
                break;
            default:
                break;

            }
            if (contactBete == True || contactAnim == True)
            {
                if (retirerVieAnimauxEtMonstres(listeAnimaux, personnage, listeMonstres, contactAnim) == True)
                {
                    if (contactBete == True)
                    {
                        gestionDropMonstres(listeMonstres, tabParamMonstres, personnage);
                        supprimerELementListeMonstres(listeMonstres);
                    }
                    if (contactAnim == True)
                    {
                        gestionDropAnimaux(listeAnimaux, tabParam, personnage);
                        supprimerElement(listeAnimaux);
                    }
                }
            }

        deplacerCleDevantListeMonstres(listeMonstres);
        deplacerCleDevant(listeAnimaux);
        if (i < n1)
            i++;
        if (p < n2)
            p++;
    }

}