#include "SOUREDIT/EDITSOUR.H" #include "SOUREDIT/EDITGRAP.H" #include "SOUREDIT/EDITPANN.H" #include "SOUREDIT/EDITTABL.H" #include "SOUREDIT/EDITONGL.H" #include "SOUREDIT/EDITBOIT.H" void Afficher_Numero (short,short,short); short Tester_Zone_Tableaux (void); void Option_Lire_Tableau (void); void Option_Initialiser_Tableau (void); void Option_Copier_Tableau (void); void Option_Permuter_Tableau (void); void Option_Verifier_Tableau (void); void Option_About (void); void Panneau_1 (void) { short cpt; OCTET page; Ecrire_Panneau_Encours (Lire_Panneau_Demande () ); Ecrire_Panneau_Demande (0); page = (Lire_Page () == 0) ? 1 : 0; Afficher_Onglet (page,ONGLET1); for (cpt = 1 ; cpt <= 48 ; cpt ++) Afficher_Mini_Tableau (page,cpt); Changer_Page (page); Afficher_Numero (Lire_Tableau_Encours (),X1_NUM_CHARGER,Y1_NUM_CHARGER); do { if ( Test_Clic_Zone (X_Fleche (),Y_Fleche (),X_MIN_CHARGER, Y_MIN_CHARGER, X_MAX_CHARGER, Y_MAX_CHARGER) == ON) Option_Lire_Tableau (); if ( Test_Clic_Zone (X_Fleche (),Y_Fleche (),X_MIN_INITIALISER, Y_MIN_INITIALISER, X_MAX_INITIALISER, Y_MAX_INITIALISER) == ON) Option_Initialiser_Tableau (); if ( Test_Clic_Zone (X_Fleche (),Y_Fleche (),X_MIN_COPIER, Y_MIN_COPIER, X_MAX_COPIER, Y_MAX_COPIER) == ON) Option_Copier_Tableau (); if ( Test_Clic_Zone (X_Fleche (),Y_Fleche (),X_MIN_PERMUTER, Y_MIN_PERMUTER, X_MAX_PERMUTER, Y_MAX_PERMUTER) == ON) Option_Permuter_Tableau (); if ( Test_Clic_Zone (X_Fleche (),Y_Fleche (),X_MIN_VERIFIER, Y_MIN_VERIFIER, X_MAX_VERIFIER, Y_MAX_VERIFIER) == ON) Option_Verifier_Tableau (); if ( Test_Clic_Zone (X_Fleche (),Y_Fleche (),X_MIN_ANALYSER, Y_MIN_ANALYSER, X_MAX_ANALYSER, Y_MAX_ANALYSER) == ON) Option_About (); } while (Lire_Panneau_Demande () == 0); } void Afficher_Numero (short numero,short x,short y) { Souris (OFF); Afficher_Nombre (Lire_Page (),BOB_CHIFFRE,2,numero,x,y,MASK_OFF); Souris (ON); } short Tester_Zone_Tableaux (void) { short rep; OCTET tabx; OCTET taby; OCTET cptx; OCTET cpty; tabx = OFF; taby = OFF; for (cptx = 0; cptx <= 5; cptx ++) { if ( X_Fleche () >= (X_TABLEAUX + (cptx * X_ECART)) ) { if ( X_Fleche () <= (X_TABLEAUX + (cptx * X_ECART) + LG_TABLEAU) ) { tabx = ON; break; } } } for (cpty = 0; cpty <= 7; cpty ++) { if ( Y_Fleche () >= (Y_TABLEAUX + (cpty * Y_ECART)) ) { if ( Y_Fleche () <= (Y_TABLEAUX + (cpty * Y_ECART) + HT_TABLEAU) ) { taby = ON; break; } } } if ( (tabx == ON) & (taby == ON) ) rep = (NB_TABLEAU_X * cpty) + (cptx + 1); else rep = 0; return (rep); } void Option_Lire_Tableau (void) { short num_tableau; num_tableau = 0; Option (OFF,Lire_Page (),X_MIN_CHARGER,Y_MIN_CHARGER, X_MAX_CHARGER,Y_MAX_CHARGER); WAIT_NO_CLIC; do { if (Clic_Souris () == CLIC_GAUCHE) num_tableau = Tester_Zone_Tableaux (); } while ( num_tableau == 0 ); WAIT_NO_CLIC; Option (ON,Lire_Page (),X_MIN_CHARGER,Y_MIN_CHARGER, X_MAX_CHARGER,Y_MAX_CHARGER); Ecrire_Tableau_Encours (num_tableau); Afficher_Numero (num_tableau,X1_NUM_CHARGER,Y1_NUM_CHARGER); Ecrire_Panneau_Demande (0); } void Option_Initialiser_Tableau (void) { OCTET page; short num_tableau; OCTET reponse; num_tableau = 0; page = Lire_Page (); Option (OFF,page,X_MIN_INITIALISER,Y_MIN_INITIALISER, X_MAX_INITIALISER,Y_MAX_INITIALISER); WAIT_NO_CLIC; do { if (Clic_Souris () == CLIC_GAUCHE) num_tableau = Tester_Zone_Tableaux (); } while ( num_tableau == 0 ); WAIT_NO_CLIC; Option (ON,page,X_MIN_INITIALISER,Y_MIN_INITIALISER, X_MAX_INITIALISER,Y_MAX_INITIALISER); Afficher_Numero (num_tableau,X1_NUM_INITIALISER,Y1_NUM_INITIALISER); Afficher_Boite_Message (page,INFO01); Nombre_Option (INFO01_NB,page,2,num_tableau); reponse = RIEN; do { if ( Test_Option (INFO01_OUI) == ON ) { reponse = OUI; Option (OFF,page,INFO01_OUI); WAIT_NO_CLIC; Option (ON,page,INFO01_OUI); } if ( Test_Option (INFO01_NON) == ON ) { reponse = NON; Option (OFF,page,INFO01_NON); WAIT_NO_CLIC; Option (ON,page,INFO01_NON); } } while (reponse == RIEN); Effacer_Boite (page); if (reponse == OUI) { Initialiser_Tableau (num_tableau); Souris (OFF); Afficher_Mini_Tableau (page,num_tableau); Souris (ON); } Ecrire_Panneau_Demande (0); } void Option_Copier_Tableau (void) { OCTET page; OCTET reponse; short tab1; short tab2; tab1 = 0; tab2 = 0; page = Lire_Page (); Option (OFF,page,X_MIN_COPIER,Y_MIN_COPIER, X_MAX_COPIER,Y_MAX_COPIER); WAIT_NO_CLIC; do { if (Clic_Souris () == CLIC_GAUCHE) tab1 = Tester_Zone_Tableaux (); } while ( tab1 == 0 ); WAIT_NO_CLIC; Option (ON,page,X_MIN_COPIER,Y_MIN_COPIER, X_MAX_COPIER,Y_MAX_COPIER); Afficher_Numero (tab1,X1_NUM_COPIER,Y1_NUM_COPIER); Option (OFF,page,X_MIN_COPIER,Y_MIN_COPIER, X_MAX_COPIER,Y_MAX_COPIER); WAIT_NO_CLIC; do { if (Clic_Souris () == CLIC_GAUCHE) tab2 = Tester_Zone_Tableaux (); } while ( (tab2 == 0) | (tab2 == tab1) ); WAIT_NO_CLIC; Option (ON,page,X_MIN_COPIER,Y_MIN_COPIER, X_MAX_COPIER,Y_MAX_COPIER); Afficher_Numero (tab2,X2_NUM_COPIER,Y2_NUM_COPIER); Afficher_Boite_Message (page,INFO01); Nombre_Option (INFO01_NB,page,2,tab2); reponse = RIEN; do { if ( Test_Option (INFO01_OUI) == ON ) { reponse = OUI; Option (OFF,page,INFO01_OUI); WAIT_NO_CLIC; Option (ON,page,INFO01_OUI); } if ( Test_Option (INFO01_NON) == ON ) { reponse = NON; Option (OFF,page,INFO01_NON); WAIT_NO_CLIC; Option (ON,page,INFO01_NON); } } while (reponse == RIEN); Effacer_Boite (page); if (reponse == OUI) { Copier_Tableau (tab1,tab2); Souris (OFF); Afficher_Mini_Tableau (page, tab2); Souris (ON); } Ecrire_Panneau_Demande (0); } void Option_Permuter_Tableau (void) { short tab1; short tab2; tab1 = 0; tab2 = 0; Option (OFF,Lire_Page (),X_MIN_PERMUTER,Y_MIN_PERMUTER, X_MAX_PERMUTER,Y_MAX_PERMUTER); WAIT_NO_CLIC; do { if (Clic_Souris () == CLIC_GAUCHE) tab1 = Tester_Zone_Tableaux (); } while ( tab1 == 0 ); WAIT_NO_CLIC; Option (ON,Lire_Page (),X_MIN_PERMUTER,Y_MIN_PERMUTER, X_MAX_PERMUTER,Y_MAX_PERMUTER); Afficher_Numero (tab1,X1_NUM_PERMUTER,Y1_NUM_PERMUTER); Option (OFF,Lire_Page (),X_MIN_PERMUTER,Y_MIN_PERMUTER, X_MAX_PERMUTER,Y_MAX_PERMUTER); WAIT_NO_CLIC; do { if (Clic_Souris () == CLIC_GAUCHE) tab2 = Tester_Zone_Tableaux (); } while ( (tab2 == 0) | (tab2 == tab1) ); WAIT_NO_CLIC; Option (ON,Lire_Page (),X_MIN_PERMUTER,Y_MIN_PERMUTER, X_MAX_PERMUTER,Y_MAX_PERMUTER); Afficher_Numero (tab2,X2_NUM_PERMUTER,Y2_NUM_PERMUTER); Permuter_Tableau (tab1,tab2); Souris (OFF); Afficher_Mini_Tableau (Lire_Page (), tab1); Afficher_Mini_Tableau (Lire_Page (), tab2); Souris (ON); Ecrire_Panneau_Demande (0); } void Option_Verifier_Tableau (void) { OCTET page; BOOL etat; OCTET sortie; short num_tableau; num_tableau = 0; sortie = OFF; page = Lire_Page (); Option (OFF,page,X_MIN_VERIFIER,Y_MIN_VERIFIER, X_MAX_VERIFIER,Y_MAX_VERIFIER); WAIT_NO_CLIC; do { if (Clic_Souris () == CLIC_GAUCHE) num_tableau = Tester_Zone_Tableaux (); } while ( num_tableau == 0 ); WAIT_NO_CLIC; Option (ON,page,X_MIN_VERIFIER,Y_MIN_VERIFIER, X_MAX_VERIFIER,Y_MAX_VERIFIER); Afficher_Numero (num_tableau,X1_NUM_VERIFIER,Y1_NUM_VERIFIER); etat = Verifier_Jouabilite_Tableau (num_tableau); if (etat == VRAI) { Afficher_Boite_Message (page,INFO11); do { if ( Test_Option (INFO11_OK) == ON ) { sortie = ON; Option (OFF,page,INFO11_OK); WAIT_NO_CLIC; Option (ON,page,INFO11_OK); } } while (sortie == OFF); } else { Afficher_Boite_Message (page,INFO12); do { if ( Test_Option (INFO12_OK) == ON ) { sortie = ON; Option (OFF,page,INFO12_OK); WAIT_NO_CLIC; Option (ON,page,INFO12_OK); } } while (sortie == OFF); } Effacer_Boite (page); Ecrire_Panneau_Demande (0); } void Option_About (void) { OCTET sortie; OCTET page; sortie = OFF; page = Lire_Page (); Option (OFF,page,X_MIN_ANALYSER,Y_MIN_ANALYSER, X_MAX_ANALYSER,Y_MAX_ANALYSER); WAIT_NO_CLIC; Option (ON,page,X_MIN_ANALYSER,Y_MIN_ANALYSER, X_MAX_ANALYSER,Y_MAX_ANALYSER); Afficher_Boite_Message (page,INFO13); do { if ( Test_Option (INFO13_OK) == ON ) { sortie = ON; Option (OFF,page,INFO13_OK); WAIT_NO_CLIC; Option (ON,page,INFO13_OK); } } while (sortie == OFF); Effacer_Boite (page); Ecrire_Panneau_Demande (0); }