testgauche() { double xpole = 100, xbase = 0; printf("%.15f\n", asin(1.0) * 2 ); printf( "testing Gauss-Chebyshev integration with 1/sqrt(1-x*x)\n" ); printf( "exact result:%10f\n", asin(xpole)-asin(xbase) ); printf( " %2d points: %10f\n", 4, gauche( 4,testfunc,xbase,xpole) ); printf( " %2d points: %10f\n", 8, gauche( 8,testfunc,xbase,xpole) ); printf( " %2d points: %10f\n",16, gauche(16,testfunc,xbase,xpole) ); printf( " %2d points: %10f\n",96, gauche(96,testfunc,xbase,xpole) ); }
void choose_action(t_data *data) { int prior1; int prior2; prior1 = data->shared->pos == 0 ? 6 : data->shared->pos - 1; prior2 = (data->shared->pos + 1) % 7; if (data->i == prior1 || data->i == prior2) { repos(data); choose_action(data); } prior2 = 0; prior1 = gauche(data); if (prior1 == 1) prior2 = data->i; if (data->etat == 2) { if (prior1 == 1) reflechi_other(data); else repos(data); choose_action(data); } prior1 += droite(data); choose_action2(data, prior1, prior2); choose_action(data); }
int main() { for(int i=0;i<9;++i) haut(); droite(); for(int j=0;j<5;++j) { for(int i=0;i<8;++i) droite(); bas(); for(int i=0;i<8;++i) gauche(); if(j!=4) bas(); } gauche(); }
void afficherParcoursPrefixe(const Abin a) { if (!estVide(a)) { cout << (*a).etiquette; afficherParcoursPrefixe(gauche(a)); afficherParcoursPrefixe(droite(a)); } }
OjMechantSimple::OjMechantSimple(const qreal x, const qreal y, QString left1,QString left2,QString right1,QString right2, const bool deplacement=true) : ObjetJeuMobile(x,y,loadListPixmap(left1,left2,right1,right2)), counter(0),deplacement(deplacement) { if(deplacement) droite(); else gauche(); }
void thread_input() { char c; int r; c = getchar(); switch(c) { case 'z': haut(); break; case 's': bas(); break; case 'd': droite(); break; case 'q': gauche(); break; case 27: r = 1; while ((c = getchar()) != -1) { if (c == 27) { r = 1; continue; } r = r * 128 + c; } switch (r) { case 28097: haut(); break; case 28098: bas(); break; case 28099: droite(); break; case 28100: gauche(); break; } } }
int hauteur(const Abin a) { int Maximum(const int a, const int b); if (estVide(a)) { return 0; } return 1 + Maximum(hauteur(gauche(a)), hauteur(droite(a))); }
void second_letter_one(t_grille grille, t_mots *mot, int i, int j) { if ((j < grille.y) && (mot->word[1] == grille.tab[i][j + 1] && mot->trouve != 1)) droite(grille, mot, i ,j); if ((j > 0) && (mot->word[1] == grille.tab[i][j - 1] && mot->trouve != 1)) gauche(grille, mot, i ,j); if ((i > 0) && (mot->word[1] == grille.tab[i - 1][j] && mot->trouve != 1)) haut(grille, mot, i ,j); if ((i < grille.x) && (mot->word[1] == grille.tab[i + 1][j] && mot->trouve != 1)) bas(grille, mot, i ,j); }
int ai(t_infos *infos) { static int i = 0; if (!i) { gauche(infos); i++; } avance(infos); return (RETURN_SUCCESS); }
void afficherParcoursLargeur(const Abin a) { FileAttente f; init(f); ajoutQueue(f, a); while (!estVide(f)) { if (!estVide(gauche(getTete(f)))) { ajoutQueue(f, gauche(getTete(f))); } if (!estVide(droite(getTete(f)))) { ajoutQueue(f, droite(getTete(f))); } cout << racine(getTete(f)); retirerTete(f); } //desinit(f); }
/*==========la fonction main()=======*/ int main(void) { lcd_init_printf(); pololu_3pi_init(2000); play_mode(PLAY_CHECK); clear(); print("Hello!"); play("L16 ceg>c"); // start receiving data at 9600 baud serial_set_baud_rate(9600); serial_receive_ring(buffer, 100); int i=0; char dirct,chaine[4], comp='C',*recuper = NULL, *ok; long val, veri=0; char command; /* la boucle qui permet de recuperer la trame caractere par caractere */ while(1){ for(i=0;i<4;i++){ command = read_next_byte(); if (command) { chaine[i] = command; } } /*recuperation de la lettre recu dans la trame */ dirct = chaine[0]; /*recuperation du reste de la trame en chaine de caractere */ recuper = strchr(chaine,chaine[1]); /*conversion de cette chaine recuperer en entier (type long)*/ val = strtol(recuper, &ok,10); /* cette condition permet d'eviter l'execution de la meme trame plusieurs fois*/ if(dirct != comp || veri != val) { clear(); printf("%s",chaine); switch(dirct) { case 'A': avancer(val); break; case 'R': reculer(val); break; case 'D': droit(val); break; case 'G': gauche(val); break; case 'M': melodie(); break; default: set_motors(0,0); break; } comp = dirct; veri = val; } } return 0; }
void deplacements(struct Serpent pSerpents[], int *pNbSerpents, int *pLargeur, int *pHauteur, char pEspace[], int pArret[]) { int i = 0; for( i = 0; i < *pNbSerpents; i++) { switch(pSerpents[i].direction) { case GAUCHE: if(pEspace[pSerpents[i].position - 1] == ' ' && ((pSerpents[i].position) % (*pLargeur)) != 0) { (pSerpents[i].position) -= 1; } else { if(pEspace[pSerpents[i].position + *pLargeur] == ' ' && (pSerpents[i].position + *pLargeur) < (*pLargeur * (*pHauteur))) { gauche(pLargeur, &pSerpents[i]); } else if(pEspace[pSerpents[i].position - *pLargeur] == ' ') { droite(pLargeur, &pSerpents[i]); } else { pArret[i] = 1; } } break; case DROITE: if(pEspace[pSerpents[i].position + 1] == ' ' && ((pSerpents[i].position) % (*pLargeur)) != (*pLargeur - 1)) { (pSerpents[i].position) += 1; } else { if(pEspace[pSerpents[i].position - *pLargeur] == ' ' && (pSerpents[i].position + *pLargeur) > 0) { gauche(pLargeur, &pSerpents[i]); } else if(pEspace[pSerpents[i].position + *pLargeur] == ' ') { droite(pLargeur, &pSerpents[i]); } else { pArret[i] = 1; } } break; case HAUT: if(pEspace[pSerpents[i].position - *pLargeur] == ' ' && ((pSerpents[i].position) - *pLargeur) > 0) { (pSerpents[i].position) -= *pLargeur; } else { if(pEspace[pSerpents[i].position - 1] == ' ' && ((pSerpents[i].position) % (*pLargeur)) != 0) { gauche(pLargeur, &pSerpents[i]); } else if(pEspace[pSerpents[i].position + 1] == ' ') { droite(pLargeur, &pSerpents[i]); } else { pArret[i] = 1; } } break; case BAS: if(pEspace[pSerpents[i].position + *pLargeur] == ' ' && ((pSerpents[i].position) + *pLargeur) < (*pLargeur * (*pHauteur))) { (pSerpents[i].position) += *pLargeur; } else { if(pEspace[pSerpents[i].position + 1] == ' ' && ((pSerpents[i].position) % (*pLargeur)) != (*pLargeur -1)) { gauche(pLargeur, &pSerpents[i]); } else if(pEspace[pSerpents[i].position - 1] == ' ') { droite(pLargeur, &pSerpents[i]); } else { pArret[i] = 1; } } break; default: break; } pEspace[pSerpents[i].position] = pSerpents[i].direction; } }
void trouver_chemin(GameElements::Map * map, Math::Vector2<int> & my_cell,Math::Vector2<int> & target_cell,std::vector<Math::Vector2<int>> & chemin) { value_tab[my_cell[0]][my_cell[1]] =0; Math::Vector2<int> current_cell = target_cell; int val_h = 0,val_b = 0,val_d = 0,val_g = 0; while(!(current_cell[0] == my_cell[0] && current_cell[1] == my_cell[1])) { val_h =0; val_b =0; val_g =0; val_d =0; //calculer les index des cellules autour Math::Vector2<int> haut(current_cell); Math::Vector2<int> bas(current_cell); Math::Vector2<int> gauche(current_cell); Math::Vector2<int> droite(current_cell); Math::Vector2<int> choice(current_cell); if(bas[0] < map->height()-1) bas[0] ++; if(haut[0] > 0) haut[0] --; if(gauche[1] > 0) gauche[1] --; if(droite[1] < map->width()-1) droite[1] ++; int min_val = value_tab[current_cell[0]][current_cell[1]]; if(haut[0] != current_cell[0]){val_h = value_tab[haut[0]][haut[1]];} if(gauche[1] != current_cell[1]){val_g = value_tab[gauche[0]][gauche[1]];} if(droite[1] != current_cell[1]){val_d = value_tab[droite[0]][droite[1]];} if(bas[0] != current_cell[0]){ val_b = value_tab[bas[0]][bas[1]] ;} //rechercher la cellule avec la valeur min la plus proche if(val_h == -1 && val_d == -1 && val_g == -1 && val_b == -1){std::cout << "CELLULE NON ATTEINTE !! " << std::endl;break;} else{ if(val_h != -1) if(min_val > val_h) { min_val = val_h; choice = haut; } if(val_g != -1) if(min_val > val_g) { min_val = val_g; choice = gauche; } if(val_d != -1) if(min_val > val_d) { min_val = val_d; choice = droite; } if(val_b != -1) if(min_val > val_b) { min_val = val_b; choice = bas; } current_cell = choice ; chemin.push_back(choice); } } }
void supprimer(Tas *t, Elem *el) { int i = 0; int j, d, g, s; int idx = el->numero; if(t->val[idx] == NULL) { #ifdef DEBUG printf("Le noeud n'existe pas.\n"); #endif return; } else { i = t->val[idx]->posTas; } #ifdef DEBUG printf("Element trouve : %d\n", i); #endif //decrementer le nombre de noeud t->nbNoeud--; if(i == t->nbNoeud) { //c'est le dernier élément l'effacer uniquement t->tas[t->nbNoeud] = -1; return; } //echanger le dernier noeud avec le noeud à supprimer //et effacer le dernier noeud t->tas[i] = t->tas[t->nbNoeud]; t->tas[t->nbNoeud] = -1; //stocker la valeur dans le tas t->val[t->tas[i]]->posTas = i; //remonter du pere si il existe if(i != 0) { i = pere(i); } //reordonner tous les noeuds au dessous du pere while(i >= 0) { //initialiser le noeud a une valeur impossible j = -1; d = droite(i); g = gauche(i); if((d < t->nbNoeud) && compare(t, d, i)) { if(compare(t, g, d)) { //fils gauche existe et est le plus petit des deux fils j = g; } else { //fils droit existe et est plus petit que le pere j = d; } } else { if((g < t->nbNoeud) && compare(t, g, i)) { //fils gauche existe et est le plus petit que le pere j = g; } //le pere est le plus petit arrêter } if(j>=0) { //il faut faire un swap avec le pére s = t->tas[i]; t->tas[i] = t->tas[j]; t->tas[j] = s; //stocker la valeur dans le tas t->val[t->tas[i]]->posTas = i; t->val[t->tas[j]]->posTas = j; } //j est le nouveau pére i = j; } }