void menu(BITMAP* buffer, BITMAP* affiche[15][19], char mot[50]){ int x=1,i,j; BITMAP* ecran_noir; BITMAP* sauvegarde[15][19]; BITMAP* ecran_selec; int valeurs[15][19]; int line; ecran_noir= create_bitmap(192+5*32, 160); ecran_selec= create_bitmap(192+5*32, 160); clear_to_color(ecran_noir, makecol(0, 0, 0)); textprintf_ex(ecran_noir, font, 0, LIGNE, makecol(255,255,255),-1, "Que souhaitez-vous faire?"); textprintf_ex(ecran_noir, font, 0, 2*LIGNE+3, makecol(255,255,255),-1, "'dessin' pour commencer a dessiner"); textprintf_ex(ecran_noir, font, 0, 3*LIGNE+3, makecol(255,255,255),-1, "'aide' pour voir l'aide au dessin!important!"); blit(ecran_noir, ecran_selec, 0,0,0,0, 192+5*32, 160 ); line=4; affiche[0][0]=load_bitmap("mur.bmp", NULL); for (i=0; i<15; i++) { for(j=0; j<19; j++){ valeurs[i][j]=-2; printf("%d",valeurs[i][j]); affiche[i][j]=affiche[0][0]; if (affiche[i][j]!=NULL) draw_sprite(buffer, affiche[i][j], TSPRITE*j, TSPRITE*i); } printf("\n"); } draw_sprite(buffer, ecran_noir, 192-2*32, 160); blit(buffer, screen,0,0,0,0, 21*TSPRITE, 15*TSPRITE); while(x) { i=0; j=0; for (i=0; i<15; i++) { for(j=0; j<19; j++) { sauvegarde[i][j]=affiche[i][j]; } } worst_writing_ever(mot, buffer, ecran_noir, line, affiche); if (strcmp(mot, "dessin")) { if (strcmp(mot, "aide")) { allegro_message("ce n'est pas une entree valable"); } else { clear_to_color(ecran_noir, makecol(0,0,0)); textprintf_ex(ecran_noir, font, 0, LIGNE+3, makecol(255,255,255),-1, "Afin de dessiner un niveau cliquez sur les cases."); textprintf_ex(ecran_noir, font, 0, 2*(LIGNE+3), makecol(255,255,255),-1, "un clic gauche fais afficher la possibilité suivante"); textprintf_ex(ecran_noir, font, 0, 3*(LIGNE+3), makecol(255,255,255),-1, "un clic droit met une glace a l'emplacement indiqué"); textprintf_ex(ecran_noir, font, 0, 4*(LIGNE+3), makecol(255,255,255),-1, "appuyez sur entree quand vous avez terminé"); textprintf_ex(ecran_noir, font, 0, 5*(LIGNE+3), makecol(255,255,255),-1, "Ce jeu n'est pas multijoueur! poser deux joueurs se soldera par un echec dans l'execution du niveau"); textprintf_ex(ecran_noir, font, 0, 6*(LIGNE+3), makecol(255,255,255),-1, "Les teleporteurs vont pas paires et sont liés dans l'ordre dans le quel vous les implémentez!"); textprintf_ex(ecran_noir, font, 0, 7*(LIGNE+3), makecol(255,255,255),-1, "une seule sortie ou tunnel!! Le tunnel eclipsera la sortie le cas échéant mais plusieurs d'entre eux conduiront a un échec"); textprintf_ex(ecran_noir, font, 0, 8*(LIGNE+3), makecol(255,255,255),-1, "Soyez créatifs!!!"); } } else { editeur_de_case(affiche, valeurs); buffer=affiche_buffer(affiche); draw_sprite(buffer, ecran_noir, 192-2*32, 160); blit(buffer, screen,0,0,0,0, 21*TSPRITE, 15*TSPRITE); x=menu_oui_non(buffer, "dessin"); line++; if(x==0) { clear_to_color(ecran_noir, makecol(0,0,0)); textprintf_ex(ecran_noir, font, 0, 0, makecol(255,255,255),-1, "entrez le nom de votre niveau"); worst_writing_ever(mot, buffer, ecran_noir, 1, affiche); if (sauvegarde_niveau(valeurs, mot)); else { allegro_message("niveau enregistre!"); x=0; } } else { for (i=0; i<15; i++) { for(j=0; j<19; j++) { affiche[i][j]=sauvegarde[i][j]; } } } } blit(ecran_selec, ecran_noir, 0,0,0,0, 192+5*32, 160 ); } }
int main()//Preparation du menu du PRJ01 { int x=0; int score=0, niveau=0; char imput [50]; int mode_graphique=0, mode_son=0; FILE* fichier_score; fichier_score= fopen("scores.txt", "r+"); while (x==0)//Infini au cas ou l'utilisateur n'ecrit pas qq chose de correct { printf("\t\t\t MENU \n"); printf("\tMettez la console en PLEIN ECRAN\n"); printf ("\t Ecrivez sans fautes d'orthographe! \n"); printf ("Ecrivez 'jouer' pour commencer a jouer ! \n"); printf ("Ecrivez 'reprendre' pour reprendre votre partie sauvegardee ! \n"); printf ("Ecrivez 'tutoriel' si vous jouez pour la premiere fois ! \n"); printf ("Ecrivez 'options' pour modifier vos options ! \n"); printf ("Ecrivez 'quitter' pour quitter le jeu !\n"); scanf ("%s",imput); if (strcmp (imput,"jouer")==0) { getconsole_size(); if (mode_graphique!=0) { // si c'est le premier niveau joué // on initiallise allegro allegro_init(); // on initialise le mode couleur set_color_depth(16); // on installe le clavier install_keyboard(); // on démarre le mode graphique set_gfx_mode(GFX_AUTODETECT_WINDOWED, 19*TSPRITE, 15*TSPRITE,0,0); } for(niveau=0; niveau<5; niveau++) { switch(jeu_graphique(niveau, &score, mode_graphique, NULL)) { case 1: niveau--; break; case 3: niveau=5; //si l'utilisateur rentre le bon trucs, appelle la fonction x++; } } if (mode_graphique) { BITMAP* buffer; buffer=create_bitmap(TSPRITE*19, TSPRITE*15); clear_to_color(buffer); if(menu_oui_non(buffer, "score")); else { textprintf_ex(buffer, font, 192-2*32, 160); } } } else if (strcmp (imput,"reprendre")==0) { jeu_graphique(5, &score, mode_graphique, NULL); x++; } else if (strcmp (imput, "tutoriel")==0) { strcat(imput, ".txt"); jeu_graphique(0, &score, mode_graphique, imput); system("cls"); } else if (strcmp (imput, "scores")==0) { fonction_scores; x++; } else if (strcmp (imput, "options")==0) { fonction_options(&score, &mode_graphique, &mode_son); system("cls"); } else if (strcmp (imput, "quitter")==0) { return 0; } else if (strcmp (imput, "admin")==0) { fonction_admin(mode_graphique, &score); x++; } else if(strcmp (imput, "editer")==0) { level_editor(); } else if(strcmp (imput, "niveaux")==0) { mes_niveaux(&score, mode_graphique); } else { printf ("Ce n'est pas un choix correct, veuillez recommencer\n"); Sleep(500); } } return 0; } END_OF_MAIN();