Advertisement
Guest User

Untitled

a guest
Jan 25th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 21.41 KB | None | 0 0
  1. package body p_vue_graph is
  2.  
  3. procedure InitFenetreAccueil(Facc : in out TR_Fenetre) is
  4. begin
  5.   Facc := DebutFenetre("Selection Niveau",400,100);
  6.   AjouterChamp(Facc,"niveau","indiquer niveau","",100,10,280,30);
  7.   AjouterBouton(Facc,"BoutonV","Valider",40,100,70,30);
  8.   AjouterBouton(Facc,"BoutonQ","Quitter",290,100,70,30);
  9.   AjouterBouton(Facc,"BoutonR","Comment jouer",150,100,100,30);
  10.   AjouterTexte(Facc,"Erreur","",122,45,150,20);
  11.   AjouterTexte(Facc,"Erreur2","",160,65,150,20);
  12.   FinFenetre(Facc);
  13. end InitFenetreAccueil;
  14. --initialisation de la fenetre d'Accueil, placement des différents elements
  15.  
  16. procedure InitFenetreWin(Fwin : in out TR_Fenetre) is
  17. begin
  18.   Fwin := DebutFenetre("win",400,100);
  19.   AjouterTexte(Fwin,"MessageWin","Felicitation vous avez gagne !",100,40,200,22);
  20.   AjouterBouton(Fwin,"BoutonNewGame","Nouvelle Partie",50,80,100,30);
  21.   AjouterBouton(Fwin,"BoutonQuitter","Quitter",280,80,70,30);
  22.   FinFenetre(Fwin);
  23. end InitFenetreWin;
  24. --initialisation de la fenetre de Victoire, placement des différents elements
  25.  
  26. procedure InitFenetreJeu(Fjeu : in out TR_Fenetre) is
  27.   u,v : integer := 0;
  28.   NewLine    : constant Character  := Character'Val (10);
  29. begin
  30.   Fjeu := DebutFenetre("TWIST",1280,720);
  31.   AjouterTexteAscenseur(Fjeu,"Messageerreur","","",50,640,310,50)--lieu du message d'erreur si le placement est impossible
  32.   for i in 1..4 loop
  33.     for j in T_col'range loop
  34.       AjouterBouton(Fjeu,'C'&j & integer'image(i),"",50+80*(character'pos(j)-65),50+80*(i-1),80,80);
  35.       AjouterBoutonRond(Fjeu,'D'&j&integer'image(i),"",62+80*(character'pos(j)-65),50+80*(i-1),80,80);
  36.       ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_BOTTOM_BCOL);
  37.       ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_WHITE);
  38.     end loop;
  39.   end loop;
  40.   --initialisation de la grille, placement des cases
  41.   for k in 1..8 loop
  42.     if k mod 2 = 1 then
  43.       AjouterBouton(Fjeu,'P'&integer'image(k),"",800,50+150*u,150,150);
  44.       ChangerCouleurFond(Fjeu,'P'&integer'image(k),FL_BOTTOM_BCOL);
  45.       for i in 1..4 loop
  46.         for j in 1..4 loop
  47.           AjouterBoutonRond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),"",806+35*(j-1)+3,50+150*u+35*(i-1)+6,35,35);
  48.           ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_WHITE);
  49.           AjouterBoutonRond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),"",806+35*(j-1)+8,50+150*u+35*(i-1)+13,20,20);
  50.           ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  51.         end loop;
  52.       end loop;
  53.     u := u + 1;
  54.     else
  55.       AjouterBouton(Fjeu,'P'&integer'image(k),"",1070,50+150*v,150,150);
  56.       ChangerCouleurFond(Fjeu,'P'&integer'image(k),FL_BOTTOM_BCOL);
  57.       for i in 1..4 loop
  58.         for j in 1..4 loop
  59.           AjouterBoutonRond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),"",1076+35*(j-1)+3,50+150*v+35*(i-1)+6,35,35);
  60.           ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_WHITE);
  61.           AjouterBoutonRond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),"",1076+35*(j-1)+8,50+150*v+35*(i-1)+13,20,20);
  62.           ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  63.         end loop;
  64.       end loop;
  65.       v := v + 1;
  66.     end if;
  67.   end loop;
  68.   --initialisation des pieces, placement des matrices pour les pieces
  69.   AjouterBouton(Fjeu,"BoutonRegle","Regle",800,700,150,30);
  70.   AjouterBouton(Fjeu,"BoutonQuitter","Quitter",1070,700,150,30);
  71.   u := 0;
  72.   v := 0;
  73.   for k in 1..4 loop
  74.     if k mod 2 = 1 then
  75.         AjouterBouton(Fjeu,'R'&integer'image(k),"",380,420+160*u,150,150);
  76.         ChangerCouleurFond(Fjeu,'R'&integer'image(k),FL_BOTTOM_BCOL);
  77.         for i in 1..4 loop
  78.           for j in 1..4 loop
  79.             AjouterBoutonRond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),"",386+35*(j-1)+3,420+160*u+35*(i-1)+6,35,35);
  80.             ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_WHITE);
  81.             AjouterBoutonRond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),"",386+35*(j-1)+8,420+160*u+35*(i-1)+13,20,20);
  82.             ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_LEFT_BCOL);
  83.           end loop;
  84.         end loop;
  85.         u := u + 1;
  86.     else
  87.         AjouterBouton(Fjeu,'R'&integer'image(k),"",540,420+160*v,150,150);
  88.         ChangerCouleurFond(Fjeu,'R'&integer'image(k),FL_BOTTOM_BCOL);
  89.         for i in 1..4 loop
  90.           for j in 1..4 loop
  91.             AjouterBoutonRond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),"",546+35*(j-1)+3,420+160*v+35*(i-1)+6,35,35);
  92.             ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_WHITE);
  93.             AjouterBoutonRond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),"",546+35*(j-1)+8,420+160*v+35*(i-1)+13,20,20);
  94.             ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_LEFT_BCOL);
  95.           end loop;
  96.         end loop;
  97.         v := v + 1;
  98.     end if;
  99.   end loop;
  100.   --initialisation des rotations, placement des matrices pour les pieces
  101.   AjouterTexteAscenseur(Fjeu,"messagejeu","","",50,420,310,184);  --creation zone de texte pour les consignes
  102.   ChangerContenu(Fjeu,"messagejeu",
  103.   "    1. Cliquer sur une piece puis une case sur"&NewLine&"        la grille pour la placer."&NewLine&
  104.   "    2. Cliquer directement sur une piece de la"&NewLine&"        grille pour la retirer."&NewLine&
  105.   "    3. Cliquer sur une piece puis selectionne la"&NewLine&"        rotation que vous souhaitez pour la faire"&NewLine&"        tourner."&NewLine&
  106.   "    4. Pour le placecement, selectionnez une"&NewLine&"        piece et cliquer sur la case de la grille"&NewLine&"        correspondant au coin haut gauche de"&NewLine&"        votre piece.");
  107.   FinFenetre(FJeu);
  108.   --initialisation des consignes
  109. end InitFenetreJeu;
  110.  
  111. procedure InitNiveau(Fjeu : in out TR_Fenetre;f : in out text_io.file_type;numdefi : in positive;G : out TV_Grille) is
  112. begin
  113.   reset(f,in_file);
  114.   InitGrille(G);
  115.   InitJeu(f,numdefi,G);
  116. end InitNiveau;
  117. --initialisation du niveau selectionner par le joueur
  118.  
  119. procedure AfficheGrille(Fjeu : in out TR_Fenetre;V : in TV_Grille;VP : in TV_Piece) is
  120. begin
  121.   for i in T_lig'range loop
  122.     for j in T_col'range loop
  123.       if V(i,j).piece = 0 and V(i,j).fiche = noir then
  124.         ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_BOTTOM_BCOL);
  125.         ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_BOTTOM_BCOL);
  126.       elsif V(i,j).piece = 0 and V(i,j).fiche = rouge then
  127.         ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_RED);
  128.         ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_BOTTOM_BCOL);
  129.       elsif V(i,j).piece = 0 and v(i,j).fiche = jaune then
  130.         ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_YELLOW);
  131.         ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_BOTTOM_BCOL);
  132.       elsif V(i,j).piece = 0 and V(i,j).fiche = bleu then
  133.         ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_DODGERBLUE);
  134.         ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_BOTTOM_BCOL);
  135.       elsif V(i,j).piece = 0 and V(i,j).fiche = vert then
  136.         ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_GREEN);
  137.         ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_BOTTOM_BCOL);
  138.       else
  139.         if VP(V(i,j).piece).coul = rouge then
  140.           ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_RED);
  141.           ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_RED);
  142.         elsif VP(V(i,j).piece).coul = jaune then
  143.           ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_YELLOW);
  144.           ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_YELLOW);
  145.         elsif VP(V(i,j).piece).coul = bleu then
  146.           ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_DODGERBLUE);
  147.           ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_DODGERBLUE);
  148.         elsif VP(V(i,j).piece).coul = vert then
  149.           ChangerCouleurFond(Fjeu,'C'&j & integer'image(i),FL_GREEN);
  150.           ChangerCouleurFond(Fjeu,'D'&j & integer'image(i),FL_GREEN);
  151.         end if;
  152.       end if;
  153.     end loop;
  154.   end loop;
  155. end AfficheGrille;
  156. --mise en place des couleurs sur la grille en fonction du niveau selectionne ainsi que de la presence d'une piece ou non
  157.  
  158. procedure InitRegle(Freg : in out TR_Fenetre) is
  159. begin
  160.   Freg := DebutFenetre("Regle",500,150);
  161.   Ajoutertexte(Freg,"regle1","Le defi consiste a completer l'interieur du plan de jeu avec les",58,40,460,20);
  162.   Ajoutertexte(Freg,"regle2","8 pieces de couleur, tout en associant les points de couleurs avec",50,60,460,20);
  163.   Ajoutertexte(Freg,"regle3","les parties trouees des pieces, vous pouvez tourner les pieces.",60,80,460,20);
  164.   AjouterBouton(Freg,"BoutonQuitter","Quitter",175,130,150,30);
  165.   FinFenetre(Freg);
  166. end InitRegle;
  167. --initialisation de la fenetre de Regle, placement des différents elements
  168.  
  169. procedure AffichePiecesNonPlacees(Fjeu : in out TR_Fenetre;VP : in TV_Piece) is
  170. begin
  171.   for k in 1..8 loop
  172.     if VP(k).place then
  173.       ChangerCouleurFond(Fjeu,'P'&integer'image(k),FL_BOTTOM_BCOL);
  174.       for i in 1..4 loop
  175.         for j in 1..4 loop
  176.           ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_WHITE);
  177.           ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_LEFT_BCOL);
  178.         end loop;
  179.       end loop;
  180.       --si la piece est sur la grille la matrice devient vierge
  181.     else
  182.       for i in 1..4 loop
  183.         for j in 1..4 loop
  184.           if VP(k).mat(i,j) = vide then
  185.             ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  186.             ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  187.           elsif VP(k).mat(i,j) = plein then
  188.             if VP(k).coul = rouge then
  189.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  190.               ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  191.             elsif VP(k).coul = vert then
  192.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  193.               ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  194.             elsif VP(k).coul = jaune then
  195.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  196.               ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  197.             else
  198.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  199.               ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  200.             end if;
  201.           else
  202.             ChangerCouleurFond(Fjeu,'N'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  203.             if VP(k).coul = rouge then
  204.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  205.             elsif VP(k).coul = vert then
  206.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  207.             elsif VP(k).coul = jaune then
  208.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  209.             else
  210.               ChangerCouleurFond(Fjeu,'P'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  211.             end if;
  212.           end if;
  213.         end loop;
  214.       end loop;
  215.     end if;
  216.   end loop;
  217. end AffichePiecesNonPlacees;
  218. --initialisation des couleurs des pieces non placees
  219.  
  220. procedure AffichePieceRotD(Fjeu : in out TR_Fenetre;VP : in out TV_Piece; nump : in T_NumPiece;mat : in out TV_Matrice) is
  221.   k : integer := 2;
  222. begin
  223.   RotD(mat,VP,nump);
  224.   for i in 1..4 loop
  225.     for j in 1..4 loop
  226.       if mat(i,j) = vide then
  227.         ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  228.         ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  229.       elsif mat(i,j) = plein then
  230.         if VP(nump).coul = rouge then
  231.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  232.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  233.         elsif VP(nump).coul = vert then
  234.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  235.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  236.         elsif VP(nump).coul = jaune then
  237.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  238.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  239.         else
  240.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  241.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  242.         end if;
  243.       else
  244.         if VP(nump).coul = rouge then
  245.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  246.         elsif VP(nump).coul = vert then
  247.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  248.         elsif VP(nump).coul = jaune then
  249.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  250.         else
  251.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  252.         end if;
  253.       end if;
  254.     end loop;
  255.   end loop;
  256. end AffichePieceRotD;
  257. --initialisation des couleur de la piece selectionner par le joueur, cette derniere ayant subit une rotation sur la droite
  258.  
  259. procedure AffichePieceRotG(Fjeu : in out TR_Fenetre;VP : in out TV_Piece; nump : in T_NumPiece;mat : in out TV_Matrice) is
  260.   k : integer := 1;
  261. begin
  262.   RotG(mat,VP,nump);
  263.   for i in 1..4 loop
  264.     for j in 1..4 loop
  265.       if mat(i,j) = vide then
  266.         ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  267.         ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  268.       elsif mat(i,j) = plein then
  269.         if VP(nump).coul = rouge then
  270.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  271.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  272.         elsif VP(nump).coul = vert then
  273.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  274.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  275.         elsif VP(nump).coul = jaune then
  276.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  277.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  278.         else
  279.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  280.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  281.         end if;
  282.       else
  283.         if VP(nump).coul = rouge then
  284.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  285.         elsif VP(nump).coul = vert then
  286.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  287.         elsif VP(nump).coul = jaune then
  288.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  289.         else
  290.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  291.         end if;
  292.       end if;
  293.     end loop;
  294.   end loop;
  295. end AffichePieceRotG;
  296. --initialisation des couleur de la piece selectionner par le joueur, cette derniere ayant subit une rotation sur la gauche
  297.  
  298. procedure AffichePieceRetH(Fjeu : in out TR_Fenetre;VP : in out TV_Piece; nump : in T_NumPiece;mat : in out TV_Matrice) is
  299.   k : integer := 3;
  300. begin
  301.   RetH(mat,VP,nump);
  302.   for i in 1..4 loop
  303.     for j in 1..4 loop
  304.       if mat(i,j) = vide then
  305.         ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  306.         ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  307.       elsif mat(i,j) = plein then
  308.         if VP(nump).coul = rouge then
  309.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  310.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  311.         elsif VP(nump).coul = vert then
  312.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  313.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  314.         elsif VP(nump).coul = jaune then
  315.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  316.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  317.         else
  318.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  319.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  320.         end if;
  321.       else
  322.         if VP(nump).coul = rouge then
  323.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  324.         elsif VP(nump).coul = vert then
  325.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  326.         elsif VP(nump).coul = jaune then
  327.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  328.         else
  329.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  330.         end if;
  331.       end if;
  332.     end loop;
  333.   end loop;
  334. end AffichePieceRetH;
  335. --initialisation des couleur de la piece selectionner par le joueur, cette derniere ayant subit un retournement horizontal
  336.  
  337. procedure AffichePieceRetV(Fjeu : in out TR_Fenetre;VP : in out TV_Piece; nump : in T_NumPiece;mat : in out TV_Matrice) is
  338.   k : integer := 4;
  339. begin
  340.   RetV(mat,VP,nump);
  341.   for i in 1..4 loop
  342.     for j in 1..4 loop
  343.       if mat(i,j) = vide then
  344.         ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  345.         ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  346.       elsif mat(i,j) = plein then
  347.         if VP(nump).coul = rouge then
  348.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  349.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  350.         elsif VP(nump).coul = vert then
  351.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  352.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  353.         elsif VP(nump).coul = jaune then
  354.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  355.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  356.         else
  357.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  358.           ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  359.         end if;
  360.       else
  361.         if VP(nump).coul = rouge then
  362.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_RED);
  363.         elsif VP(nump).coul = vert then
  364.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_GREEN);
  365.         elsif VP(nump).coul = jaune then
  366.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_YELLOW);
  367.         else
  368.           ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_DODGERBLUE);
  369.         end if;
  370.       end if;
  371.     end loop;
  372.   end loop;
  373. end AffichePieceRetV;
  374. --initialisation des couleur de la piece selectionner par le joueur, cette derniere ayant subit un retournement vertical
  375.  
  376. procedure AffichePieceTourner(Fjeu : in out TR_Fenetre;VP : in out TV_Piece;nump : in T_NumPiece;matRotD : in out TV_Matrice;matRotG : in out TV_Matrice;matRetV : in out TV_Matrice;matRetH : in out TV_Matrice) is
  377. begin
  378.   AffichePieceRotD(Fjeu,VP,nump,matRotD);
  379.   AffichePieceRotG(FJeu,VP,nump,matRotG);
  380.   AffichePieceRetV(Fjeu,VP,nump,matRetV);
  381.   AffichePieceRetH(Fjeu,VP,nump,matRetH);
  382. end AffichePieceTourner;
  383. --affichage des couleur de la piece selectionner par le joueur sur les matrices prevu a cet effet
  384.  
  385. procedure ReinitTransfo(Fjeu : in out TR_Fenetre) is
  386. begin
  387.   for k in 1..4 loop
  388.     for i in 1..4 loop
  389.       for j in 1..4 loop
  390.         ChangerCouleurFond(Fjeu,'R'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  391.         ChangerCouleurFond(Fjeu,'T'&integer'image(k)&integer'image(i)&integer'image(j),FL_BOTTOM_BCOL);
  392.       end loop;
  393.     end loop;
  394.   end loop;
  395. end ReinitTransfo;
  396. --change les matrices d'affichages des rotations en matrice vierge, suite a un positionnement d'une piece par exemple
  397.  
  398. end p_vue_graph;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement