void lire_commande(LR_PARAM *input_params, char *fic_apprentissage, char *fic_params, int num_args, char **args) { long int i; input_params->T=5000; input_params->eta=0.1; for(i=1; (i<num_args) && (args[i][0] == '-'); i++){ printf("%s\n",args[i]); switch((args[i])[1]){ case 't': i++; sscanf(args[i],"%ld",&input_params->T); break; case 'a': i++; sscanf(args[i],"%lf",&input_params->eta); break; case '?': i++; aide();exit(0); break; default : printf("Unknown option %s\n",args[i]);Standby();aide();exit(0); } } if((i+1)>=num_args){ printf("\n ---------------------------- \n Insuffisant number of parameters\n ----------------------------\n\n"); Standby(); aide(); exit(0); } printf("%s %s\n",args[i],args[i+1]); strcpy(fic_apprentissage, args[i]); strcpy(fic_params, args[i+1]); }
// erreur a ajouter dans un menu... //erreur_pointeur(); int init_ordre(int argc) { int i; for (i=0;i<NBR_ACTION;i++) *ordre++ = 0; i=0; while (--argc > 0) { i++; if (strcmp(*(argv+i),"--errPtr") == 0) { *(ordre+2) = 1; } else if (strcmp(*(argv+i), "--affArgv")==0) { *(ordre+1) = 1; } else if (strcmp(*(argv+i), "--lecture")==0) { *(ordre+3) = 1; i++; nomFichier=*(argv+i); --argc; } else { printf("choix errone : %s\n",*(argv+i)); aide(); // return 1; } } }
/******************************************************************** * * * Gestion du menu * * * ********************************************************************/ boolean MenuSelect(int object, int scan, int state, int button) { int index, entree, key; if (object < 0) { /* attend qu'on relache la souris */ NoClick(); if (button < 0) { /* regarde la touche */ key = scantoascii(scan); if (key == 0) key = scan & 0xFF00; /* scan code */ else key = UpperChar(key); for (index = 0; index < NbMenus; index++) for (entree = 0; entree < MenuShortCuts[index].nb_entrees; entree++) if (MenuShortCuts[index].menu[entree].key == key && MenuShortCuts[index].menu[entree].state == state) { if (ob_isstate(Menu, MenuShortCuts[index].menuid, DISABLED) == 0 && ob_isstate(Menu, MenuShortCuts[index].menu[entree].itemid, DISABLED) == 0) { object = MenuShortCuts[index].menu[entree].itemid; index = NbMenus; } break; } } } if (object < 0) return FALSE; /* kein entsprechender Eintrag gefunden */ /* Men�punkte 'Fenster wechseln' und 'Fenster schliežen' werden inklusive der dazugeh”rigen Hotkeys automatisch verwaltet */ switch (object) { /* menu Zorg */ case INFORMATIONS: presentation(); break; /* menu Etat */ case INFORMATION: informations(Drive); break; case REPERTOIRE_LOUPE: if (ManageVFAT) open_directory_vfat(); else open_directory_short(); break; case TEST_STRUCTURE: if (ManageVFAT) structure_test_vfat(Drive); else structure_test_short(Drive); break; case STATISTIQUES: statistiques(Drive); break; case OCCUPATION: occupation(Drive); break; case TRACE_UN_FICHIER: trace_file(); break; case QUITTER: if (Reset) { if (my_alert(1, 2, X_ICN_QUESTION, Messages(MENU_1), Messages(BOOT_32)) == 0) shutdown(TRUE); } else { button = my_alert(2, 3, X_ICN_QUESTION, Messages(MENU_2), Messages(MENU_4)); if (button == 0 || button == 1 && (int)xbios(0x11) % 2) shutdown(FALSE); } break; /* menu Ouvre */ case UNITE_LOGIQUE: open_disk(); break; case OUVRE_DISQUETTE: raw_floppy(FALSE); break; case OUVRE_DISQUE_DUR: raw_hard(FALSE); break; case OUVRE_FICHIER: open_file(); break; case OUVRE_FICHIER_FS: open_file_other_fs(); break; case OUVRE_FICH_TEXTE: voir_fichier(); break; case CREER_FICHIER: creer_fichier(); break; case FERMER: fermer(Thefrontwin -> win -> handle); break; case LIRE_BOOT: lire_boot(); break; case CHARGER_BOOT: charger_boot(); break; case SAUVER_BOOT: sauver_boot(); break; case ECRIRE_BOOT: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else ecrire_boot(); #endif break; /* menu Edition */ case SAUVER_SECTEUR: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else save_secteur(Thefrontwin, MENU_EDITION); #endif break; case COPIER_SECTEUR: copier_tampon(Thefrontwin); break; case COLLER_SECTEUR: coller_tampon(Thefrontwin); break; case ECHANGER_TAMPON: echanger_tampon(Thefrontwin); break; case RETOUR_INITIAL: load_secteur(Thefrontwin, MENU_EDITION); break; case OUVRIR_TAMPON: ouvrir_tampon(); break; case SAUVER_TAMPON: sauver_tampon(); break; case CHARGER_TB_ASCII: ascii_tampon(); break; case EFFACER_TAMPON: effacer_tampon(); break; /* menu Structure */ case DEFRAGMENTATION: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else reconnect(Drive); #endif break; case UNIQUE_LIBRE: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else compresse(Drive); #endif break; case RESTO_COMPLETE: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else restauration_complete(Drive); #endif break; case VIDE_CLST_LIBRES: nettoie_clusters_libres(Drive); break; case NETTOIE_REPERTOI: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else nettoie_repertoire(Drive); #endif break; /* menu Deplacement */ case SECTEUR_SUIVANT: next_secteur(Thefrontwin); break; case SECTEUR_PRECEDEN: previous_secteur(Thefrontwin); break; case BLOC_SUIVANT: next_bloc(Thefrontwin); break; case BLOC_PRECEDENT: previous_bloc(Thefrontwin); break; case MARQUER_POSITION: marquer_position(Thefrontwin); break; case ALLER_MARQUE: goto_marque(Thefrontwin); break; case ALLER_SECTEUR: goto_secteur(Thefrontwin); break; case CHERCHER_CHAINE: search_first(Thefrontwin); break; case CHERCHER_NOUVEAU: search_next(Thefrontwin); break; /* menu Fenˆtres */ case CHOIX_FONTE: choix_fonte(Thefrontwin); break; case CHOIX_COULEURS: couleur(Thefrontwin); break; case TAILLE_IDEALE: taille_ideale(Thefrontwin); break; case ASCENSEURS: ascenseurs(Thefrontwin); break; case CYCLER_FENETRES: cycle_window(); break; case WINDOW_LIST_1: case WINDOW_LIST_2: case WINDOW_LIST_3: case WINDOW_LIST_4: case WINDOW_LIST_5: case WINDOW_LIST_6: case WINDOW_LIST_7: case WINDOW_LIST_8: case WINDOW_LIST_9: case WINDOW_LIST_10: { windowptr thewin; for (thewin = Firstwindow; thewin; thewin = thewin -> next) if (thewin -> menu_entry == object - WINDOW_LIST_1) make_frontwin(thewin); } break; /* menu Options */ case CONFIG_GENERALE: config_generale(); break; case CONFIG_DSK: config_disques(); break; case RACCOURCIS_CLAVI: raccourcis_clavier(); break; case DONNEES_ZORG: from_zorg_inf(TRUE); break; case DONNEES_SYSTEME: from_zorg_inf(FALSE); break; case INVALIDE_CACHE: if (Kbshift(FAIL) & 4) { int i; for (i=0; i<MAX_DEVICES; i++) change_disque(i, FALSE); } else change_disque(Drive, TRUE); break; case UPDATE_SYSTEME: if (Kbshift(FAIL) & 4) { int i; for (i=0; i<MAX_DEVICES; i++) update_systeme(i); } else update_systeme(Drive); break; case VISU_TEXTE: really_voir_fichier(Thefrontwin -> fonction.fichier.nom); break; case VISU_ASCII: secteur_ascii(Thefrontwin); break; case VISU_HEXA: secteur_hexa(Thefrontwin); break; case AFFICHE_DECIMAL: affichage_decimal(Thefrontwin); break; case FICHIER_ASSOCIE: secteur_file(Thefrontwin); break; case CURSEUR_VISIBLE: curseur_on(Thefrontwin); break; case CLIPBOARD_GEM: clipboard_gem(Thefrontwin); break; /* menu Aide */ case TABLE_ASCII: AsciiChar = m_ascii_box(AsciiChar, FALSE); break; case AIDE: aide(); break; case EXECUTER_PROG: lance_prg(); break; case RESET: if (Reset) { Reset = FALSE; menu_icheck(Menu, RESET, 0); } else { int button; button = my_alert(2, 3, X_ICN_QUESTION, Messages(MENU_3), Messages(MENU_5)); if (button == 1) shutdown(TRUE); else if (button == 0) reset(); } break; } return TRUE; } /* MenuSelect */
int main(int argn, char *argv[]) { int type_data; int type_tri; int sauvegarde_tableau_initial; int sauvegarde_tableau_final; int affichage_tableaux; int n = 0; char *fichier_lecture_tableau_initial, *fichier_sauvegarde_tableau_initial, *fichier_sauvegarde_tableau_final; int *tab; int i; structSondes sondes = {0, 0, 0}; if (argn == 1) { aide(argv[0]); exit(1); } type_data = UNKNOWN; type_tri = UNKNOWN; sauvegarde_tableau_initial = FALSE; sauvegarde_tableau_final = FALSE; affichage_tableaux = FALSE; for ( i = 1; i < argn; i+=2 ) { // choix des données à trier et des sauvegardes éventuelles du tableau initial et final if (strcmp("-f", argv[i]) == 0) { fichier_lecture_tableau_initial = (char *) malloc(1 + strlen(argv[i+1]) * sizeof(char)); strcpy(fichier_lecture_tableau_initial, argv[i+1]); type_data = FICHIER; continue; } if (strcmp("-si", argv[i]) == 0) { fichier_sauvegarde_tableau_initial = (char *) malloc(1 + strlen(argv[i+1]) * sizeof(char)); strcpy(fichier_sauvegarde_tableau_initial, argv[i+1]); sauvegarde_tableau_initial = TRUE; continue; } if (strcmp("-sf", argv[i]) == 0) { fichier_sauvegarde_tableau_final = (char *) malloc(1 + strlen(argv[i+1]) * sizeof(char)); strcpy(fichier_sauvegarde_tableau_final, argv[i+1]); sauvegarde_tableau_final = TRUE; continue; } if (strcmp("-a", argv[i]) == 0) { n = atoi(argv[i+1]); type_data = RANDOM; continue; } if (strcmp("-mc", argv[i]) == 0) { n = atoi(argv[i+1]); type_data = TRIE; continue; } if (strcmp("-pc", argv[i]) == 0) { n = atoi(argv[i+1]); type_data = TRIE_INVERSE; continue; } // choix de l'algorithme de tri if (strcmp("-t", argv[i]) == 0) { if (strcmp("bulle_naif", argv[i+1]) == 0) type_tri = BULLE_NAIF; else if (strcmp("bulle_bool", argv[i+1]) == 0) type_tri = BULLE_BOOL; else if (strcmp("bulle_opt", argv[i+1]) == 0) type_tri = BULLE_OPT; else if (strcmp("selection", argv[i+1]) == 0) type_tri = SELECTION; else if (strcmp("insertion", argv[i+1]) == 0) type_tri = INSERTION; else if (strcmp("rapide", argv[i+1]) == 0) type_tri = TRIRAPIDE; else { printf("\n le tri demandé < %s > n'existe pas \n", argv[i+1]); aide(argv[0]); exit(1); } continue; } // choix de la visualisation (affichage) du tableau initial et final if (strcmp("-v", argv[i]) == 0) { affichage_tableaux = TRUE; i--; continue; } printf("\n l'option demandée < %s > n'existe pas \n", argv[i]); aide(argv[0]); exit(1); } if (n < 1) { printf("\n le nombre d'éléments à trier est incorrect : %d \n", n); aide(argv[0]); exit(1); } switch(type_data) { case TRIE: { tab = data_triee(n); printf("Tableau initial trié (meilleur des cas)"); break; } case TRIE_INVERSE: { tab = data_triee_inverse(n); printf("Tableau intial trié en ordre inverse (pire des cas)"); break; } case FICHIER: { tab = f_lire_data(fichier_lecture_tableau_initial, &n); printf("Tableau initial lu dans %s", fichier_lecture_tableau_initial); break; } case RANDOM: { tab = random_data(n); printf("Tableau initial aléatoire"); break; } case UNKNOWN: aide(argv[0]); exit(1); } if (sauvegarde_tableau_initial == TRUE) f_ecrire_data(fichier_sauvegarde_tableau_initial, tab, n); if (affichage_tableaux == TRUE) { printf("\n"); ecrire_data(tab, n); } switch(type_tri) { case BULLE_NAIF: sondes = tri_bulle_naif(tab, n); if (affichage_tableaux == TRUE) { printf("Tableau trié (bulle naïf)\n"); ecrire_data(tab, n); } analyse_complexite(sondes, "bulle naïf", n); break; case BULLE_BOOL: sondes = tri_bulle_bool(tab, n); if (affichage_tableaux == TRUE) { printf("Tableau trié (bulle bool)\n"); ecrire_data(tab, n); } analyse_complexite(sondes, "bulle bool", n); break; case BULLE_OPT: sondes = tri_bulle_opt(tab, n); if (affichage_tableaux == TRUE) { printf("Tableau trié (bulle opt)\n"); ecrire_data(tab, n); } analyse_complexite(sondes, "bulle opt", n); break; case SELECTION: sondes = tri_selection(tab, n); if (affichage_tableaux == TRUE) { printf("Tableau trié (selection)\n"); ecrire_data(tab, n); } analyse_complexite(sondes, "selection", n); break; case INSERTION: sondes = tri_insertion(tab, n); if (affichage_tableaux == TRUE) { printf("Tableau trié (insertion)\n"); ecrire_data(tab, n); } analyse_complexite(sondes, "insertion", n); break; case TRIRAPIDE: sondes = tri_rapide(tab, 0, n-1); if (affichage_tableaux == TRUE) { printf("Tableau trié (rapide)\n"); ecrire_data(tab, n); } analyse_complexite(sondes, "rapide", n); break; case UNKNOWN: aide(argv[0]); exit(1); } if (sauvegarde_tableau_final == TRUE) f_ecrire_data(fichier_sauvegarde_tableau_final, tab, n); printf("\n"); return 0; }
int main(int argc, char *argv[]) { SDL_Surface *sdlScreen; SDL_Surface *sdlMenu; SDL_Rect sdlPosMenu; SDL_Event event; int nMenu; int nBoard = BOARD_BASE; int nSpeedInit = SPEED_MEDIUM; int nNbSnake = NB_SNAKES; int nWalls = BOARD_WITH_WALLS; srand(time(NULL)); if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); exit(1); } sdlScreen = SDL_SetVideoMode(MENU_WIDTH, MENU_HEIGHT, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); if (sdlScreen == NULL) // Si l'ouverture a échoué, on le note et on arrête { fprintf(stderr, "Impossible de charger le mode vidéo : %s\n", SDL_GetError()); exit(EXIT_FAILURE); } SDL_WM_SetCaption("Snake.. SNAKE !", NULL); SDL_ShowCursor(SDL_DISABLE); sdlMenu = SDL_LoadBMP("../images/Menu.bmp"); sdlPosMenu.x = 0; sdlPosMenu.y = 0; nMenu = 1; while(nMenu) { Board board; SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: nMenu = 0; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_p: // Start Game case SDLK_j: switch(nBoard) { case BOARD_BASE: board = init_board1(); break; case BOARD_1V1: if (nNbSnake > 2) { nNbSnake = 2; } board = init_board_1v1(); break; case BIG_BOARD: board = init_board_big(); break; default: break; } if (nWalls == 1) { add_walls_inside(&board); } SDL_FreeSurface(sdlScreen); sdlScreen = SDL_SetVideoMode(board.nBoardWidth*SIZE_CASE, board.nBoardHeight*SIZE_CASE, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); play(sdlScreen, board, nNbSnake, nSpeedInit); SDL_FreeSurface(sdlScreen); sdlScreen = SDL_SetVideoMode(MENU_WIDTH, MENU_HEIGHT, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); break; case SDLK_o: // Option option(sdlScreen, &nNbSnake, &nBoard, &nSpeedInit, &nWalls); break; case SDLK_a: // Help case SDLK_h: aide(sdlScreen); break; case SDLK_ESCAPE: // Leave Game case SDLK_q: nMenu = 0; break; default: break; } break; default: break; } //SDL_FillRect(sdlScreen, NULL, SDL_MapRGB(sdlScreen->format, 20, 20, 20)); SDL_BlitSurface(sdlMenu, NULL, sdlScreen, &sdlPosMenu); SDL_Flip(sdlScreen); } SDL_FreeSurface(sdlMenu); SDL_Quit(); return EXIT_SUCCESS; }