Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 1.58 KB | None | 0 0
  1. with Ada.Text_IO;
  2. with Ada.Numerics.Discrete_Random;
  3. procedure Hello is
  4.  
  5.     subtype Intervalle is Integer range 1 .. 3;
  6.     package Aleatoire is new Ada.Numerics.Discrete_Random(Intervalle);
  7.     use Aleatoire;
  8.  
  9.     function RandNumber return Integer is  
  10.           Nombre     : Integer;  
  11.           Generateur : Generator;
  12.     begin
  13.           Reset(Generateur);
  14.           Nombre:=Random(Generateur);
  15.           return Nombre;
  16.     end RandNumber;
  17.  
  18.  
  19.     type T_Bloc is (Mur,Vide,Pacman,Cerise);
  20.     type T_Lab is array(1..10,1..10) of T_Bloc;
  21.     type T_Pacman is record
  22.         PosX: Integer;
  23.         PosY: Integer;
  24.         NbreVies: Integer;
  25.     end record;
  26.  
  27.  
  28.     procedure DessinerLabyrinthe(L:T_Lab) is
  29.     begin
  30.         for i in L'Range(1) loop
  31.             for j in L'Range(2) loop
  32.                 Case L(i,j) is
  33.                 when Mur => Ada.Text_IO.Put("#");
  34.                 when Pacman => Ada.Text_IO.Put("P");
  35.                 when Cerise => Ada.Text_IO.Put("o");
  36.                 when Vide => Ada.Text_IO.Put(" ");
  37.                 end case;
  38.             end loop;
  39.             Ada.Text_IO.New_Line;
  40.         end loop;  
  41.     end DessinerLabyrinthe;
  42.  
  43.  
  44.  
  45.     procedure InitialiserJeu(P:out T_Pacman; L:out T_Lab) is
  46.         T: Integer := RandNumber;
  47.     begin
  48.         P.PosX := 1;
  49.         P.PosY := 1;
  50.         P.NbreVies := 4;
  51.         for i in L'Range(1) loop
  52.             for j in L'Range(2) loop
  53.                 T := RandNumber;
  54.                 case T is
  55.                 when 1 => L(i,j) := Mur;
  56.                 when 2 => L(i,j) := Vide;
  57.                 when 3 => L(i,j) := Cerise;
  58.                 when others => L(i,j) := Vide;
  59.                 end case;
  60.             end loop;
  61.         end loop;
  62.  
  63.         L(P.PosX,P.PosY) := Pacman;
  64.         DessinerLabyrinthe(L);
  65.     end InitialiserJeu;
  66.  
  67.  
  68.  
  69.     MonLab: T_Lab;
  70.     MonPacman: T_Pacman;
  71. begin
  72.     InitialiserJeu(MonPacman,MonLab);
  73.  
  74. end Hello;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement