int find_pivot(float **S, int m, int n) { int i, j, pivot_col, pivot_row; float min=0, ratio; for(j=0;j<n-1;j++) { if(S[m-1][j]<min) { min = S[m-1][j]; pivot_col = j; } } printf("min=%f\n", min); //in case the pivot is not found if(min==0) return 1; //if the pivot is found else { min=99; for(i=0; i<m-1; i++) { if(S[i][pivot_col] > 0) { ratio = S[i][n-1]/S[i][pivot_col]; if(ratio<min) { min = ratio; pivot_row = i; } } } printf("row=%d\n", pivot_row); gen_tableau(S, m, n, pivot_row, pivot_col); return 0; } }
void partie() { /* boucle de partie */ int xpos; int ypos = 3; int perdu = 0; int niveau = 0; score=0; draw_cadre(); wmove(blocJeu,9,6); wprintw(blocJeu,"%7d",score); wrefresh(blocJeu); do { niveau++; wclear(fenetreJeu); wmove(fenetreJeu,0,0); wmove(blocJeu,9,1); wprintw(blocJeu,"%3d",niveau); wrefresh(blocJeu); gen_tableau(niveau); //draw_tableau(); usleep(500000); for (xpos=0;xpos<largeur;xpos++) { switch(wgetch(fenetreJeu)) { case KEY_UP: ypos=max(0,ypos-1); break; case KEY_DOWN: ypos=min(ypos+1,hauteur-1); break; case 'q': end_curses(); exit(0); } switch (tableau[ypos*largeur+xpos]) { case 1: perdu = 1; wattron(fenetreJeu,COLOR_PAIR(3)); mvwaddch(fenetreJeu,ypos,xpos,'@'); wattroff(fenetreJeu,COLOR_PAIR(3)); wrefresh(fenetreJeu); /* XXX pabo */ goto finDePartie; case 2: score+=42*niveau; wmove(blocJeu,9,6); wprintw(blocJeu,"%7d",score); wrefresh(blocJeu); default: mvwaddch(fenetreJeu,ypos,xpos,vaisseau); } wrefresh(fenetreJeu); // pour rajouter une 'trainée' //mvwaddch(fenetreJeu,ypos,xpos,'='); usleep(125000); } } while (!perdu); finDePartie: animation_de_fin(); if (new_highscore()) { sleep(1); int position = new_highscore(); char *nick = (char*)malloc(10*sizeof(char)); /*wmove(fenetreJeu,5,8); wprintw(fenetreJeu,"YEAH !",score);*/ wclear(dialog); wprintw(dialog,"Vous entrez dans les meilleurs scores !\n" "\n" " Score : %d\n" " Position : %d\n" " Votre nick : ", score,position); curs_set(1); echo(); wgetnstr(dialog,nick,10); if (strlen(nick)==0) nick = "(noname)"; add_highscore(nick); curs_set(0); noecho(); highlight_highscores(position); } else { } }