コード例 #1
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void inserer(t_valeurMot mot) {
	/*Insère un élément dans la liste, en préservant l'ordre croissant des valeurs de la liste*/
	int valeur, valeur_actuelle;
	
	valeur = mot.score;
	
	
	if(liste_vide()) {
		ajout_droit(mot);
	} else {
		en_tete();
		valeur_elt(&valeur_actuelle);
		while(!hors_liste() && valeur_actuelle < valeur) {
			suivant();
			valeur_elt(&valeur_actuelle);
		}
		
		if(hors_liste()) {
			en_queue();
			ajout_droit(mot);
		} else {
			ajout_gauche(mot);
		}
	}
}
コード例 #2
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void suivant(void)
/* Positionne sur l'elt suivant*/
{	
	if(!hors_liste()) {
		ec = ec->succ;
	}
}
コード例 #3
0
ファイル: liste.c プロジェクト: batebates/CCTPA
void valeur_elt(t_personne* v)
/* Renvoie dans e la veleur de l'elt courant */
{	
	if(!hors_liste()) 
		v->sexe= liste[ec].sexe;
		strcopy(v->prenom,liste[ec].prenom);
}
コード例 #4
0
ファイル: liste.c プロジェクト: batebates/CCTPA
void modif_elt(t_personne v)
/* Affecte v à l'elt courant */
{	
	if(!hors_liste()) 
		liste[ec].sexe=v.sexe;
		strcopy(liste[ec].prenom,v.prenom);
		
}
コード例 #5
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void precedent(void)
/* Positionne sur l'elt precedent*/
{	
	if(!hors_liste()) {
		ec = ec->pred;

	}
}
コード例 #6
0
ファイル: IA.c プロジェクト: batebates/rogue_like
void vider_liste()
{	
	if(!liste_vide()){
		en_queue();//on commence en fin de liste car on utilise oter_elt() qui se positionne sur le predecesseur
		/*on enleve les elements un par un jusqu'à ce que la liste soit vide*/
		while(!hors_liste()){
			oter_elt();

		}
	}
}
コード例 #7
0
ファイル: liste.c プロジェクト: batebates/CCTPA
void oter_elt(void)
/* Supprime l'elt courant et positionne sur le precedent */
{	
	int i;
	if(!hors_liste())
	{	
		for(i=ec;i<queue;i++)
			liste[i]=liste[i+1];
		ec--; queue--;
	}
}
コード例 #8
0
ファイル: IA.c プロジェクト: batebates/rogue_like
int est_present(t_coord v){
	t_coord valeur;
	if(!liste_vide()){
		en_tete();
		while(!hors_liste()){
			valeur_elt(&valeur);
			if(valeur.x==v.x && valeur.y==v.y) return 1;
			suivant();
		}
	}
	return 0;
}
コード例 #9
0
void oter_elt(void) {
	t_element * temp;
    	if(!hors_liste()) {
        	/* Mise à jour des chainages des voisins */
        	(ec->succ)->pred = ec->pred;
        	(ec->pred)->succ = ec->succ;
        	/* Positionnement sur le prédécesseur */
		temp=ec;
		ec=ec->pred;
		/* Libération de l'élément courant */
        	free(temp);
    	}
}
コード例 #10
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void ajout_droit(t_valeurMot m)
/* Ajoute v a droite de l'elt courant */
{
	if(liste_vide()||!hors_liste())
	{
		t_element * nouvel_element = malloc(sizeof(t_element));
		nouvel_element->mot = m;
		nouvel_element->succ = ec->succ;
		nouvel_element->pred = ec;
		ec->succ = nouvel_element;
		(nouvel_element->succ)->pred = nouvel_element;
		
		ec = nouvel_element;
	}
}
コード例 #11
0
void ajout_gauche(int e) {
    	t_element * nouv;
	if(liste_vide() || !hors_liste()) {
		/* Création du nouvel élément */
		nouv = malloc(sizeof(t_element));
		/* Initialisation du nouvel élément */
		nouv->valeur = e;
		nouv->succ = ec;
		nouv->pred = ec->pred;
		/* Mise à jour des chaînages des voisins */
		(ec->pred)->succ = nouv;
		ec->pred = nouv;
		/* On se positionne sur le nouvel élément */
		ec = nouv;
	}
}
コード例 #12
0
ファイル: liste.c プロジェクト: batebates/CCTPA
void ajout_droit(t_personne v)
/* Ajoute v a droite de l'elt courant */
{	
	int i;
	
	if(liste_vide()||!hors_liste())
	{	
		for(i=queue;i>ec;i--){
			liste[i+1].sexe=liste[i].sexe;
			strcpy(liste[i+1].prenom,liste[i].prenom);
		}
		liste[ec+1].sexe=v.sexe;
		strcpy(liste[ec+1].prenom,v.prenom);
		ec++; queue++;
	}
}
コード例 #13
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void ajout_gauche(t_valeurMot m)
/* Ajoute v a gauche de l'elt courant */
{	
	if(liste_vide() || !hors_liste()) {
		t_element * nouvel_element = malloc(sizeof(t_element));
		
		nouvel_element->mot = m;
		nouvel_element->pred = ec->pred;
		nouvel_element->succ = ec;
		
		(ec->pred)->succ = nouvel_element;
		(ec->pred) = nouvel_element;
		
		
		ec = nouvel_element;
	}
}
コード例 #14
0
void ajout_droit(int c, int p) {
	t_element * nouv;
	if(liste_vide() || !hors_liste()) {
		/* Création du nouvel élément */
		nouv = malloc(sizeof(t_element));
		/* Initialisation du nouvel élément */
		nouv->coeff = c;
		nouv->puiss = p;
		nouv->pred = ec;
		nouv->succ = ec->succ;
		/* Mise à jour des chaînages des voisins */
		(ec->succ)->pred = nouv;
		ec->succ = nouv;
		/* On se positionne sur le nouvel élément */
		ec = nouv;
	}
}
コード例 #15
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void afficher_liste(void)
/* Affiche les valeurs de la liste */
{
	int elem;

	if(liste_vide())
		printf("La liste est vide\n");
	else
	{
		printf("\nLa liste contient: ");
		en_tete();
		while(!hors_liste())
		{
			valeur_elt(&elem);
			printf("%s : %i\n", elem.score, elem.mot);
			suivant();
		}
		printf("\n");
	}
}
コード例 #16
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void supprimer(void)
/* Supprime toutes les occurrences d'un entier lu au clavier */
{
	int valeur;
	int valeur_actuelle;
	
	if(liste_vide()) {
		printf("La liste est vide\n");
	} else {
		printf("\nEntrez l'entier a supprimer dans la liste : ");
		scanf("%i", &valeur);
		en_queue();
		while(!hors_liste()) {
			valeur_elt(&valeur_actuelle);
			if(valeur_actuelle == valeur) {
				oter_elt();
			} else {
				precedent();
			}
		}
	}
}
コード例 #17
0
ファイル: liste.c プロジェクト: nadilo72/Ruzzle_Solver
/********************************************//**
* \brief Positionne sur l'element suivant.
*
***********************************************/
void suivant(void)
{
if(!hors_liste())
ec = ec->succ;
}
コード例 #18
0
ファイル: liste.c プロジェクト: nadilo72/Ruzzle_Solver
/********************************************//**
* \brief Renvoi les valeurs comprises dans l'element courant.
*
* \param mot : Le mot enregistré dans la liste
* \param score : Le score enregistré dans la liste
*
***********************************************/
void valeur_elt(char * mot,int * score)
{
if(!hors_liste())
strcpy(mot,ec->word);
*score = ec->score;
}
コード例 #19
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void modif_elt(t_valeurMot m)
/* Affecte v à l'elt courant */
{
	if(!hors_liste()) 
		ec = m;
}
コード例 #20
0
ファイル: liste.c プロジェクト: Hactogeek/ruzzle
void valeur_elt(t_valeurMot* m)
/* Renvoie dans e la veleur de l'elt courant */
{	
	if(!hors_liste())
		*m= ec;
}
コード例 #21
0
void valeur_elt(int* c, int* p) {
    if(!hors_liste())
        *c=ec->coeff;
        *p=ec->puiss;
}
コード例 #22
0
void modif_elt(int c, int p) {
    if(!hors_liste())
        ec->coeff=c;
        ec->puiss=p;
}
コード例 #23
0
void precedent(void) {
    if(!hors_liste())
        ec=ec->pred;
}
コード例 #24
0
ファイル: liste.c プロジェクト: batebates/CCTPA
void precedent(void)
/* Positionne sur l'elt precedent*/
{	
	if(!hors_liste()) 
		ec--;
}
コード例 #25
0
void modif_elt(int v) {
    if(!hors_liste())
        ec->valeur=v;
}
コード例 #26
0
void valeur_elt(int* e) {
    if(!hors_liste())
        *e=ec->valeur;
}
コード例 #27
0
ファイル: liste.c プロジェクト: batebates/CCTPA
void suivant(void)
/* Positionne sur l'elt suivant*/
{	
	if(!hors_liste()) 
		ec++;
}