Advertisement
Guest User

Rolldie

a guest
Sep 27th, 2018
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 1.98 KB | None | 0 0
  1.  
  2. with Ada.Text_IO;           use Ada.Text_IO;
  3. with Ada.Integer_Text_IO;       use Ada.Integer_Text_IO;
  4.  
  5. with Ada.Numerics.Discrete_Random;
  6.  
  7. -- --------------------------------------------
  8.  
  9. procedure Rolldie is
  10.    
  11.    subtype One_To_Six is
  12.      Integer range 1..6;
  13.    
  14.    -- --------------------------------------------  
  15.    
  16.    package My_Random_Package is
  17.       new Ada.Numerics.Discrete_Random(One_To_Six);
  18.    
  19.    use My_Random_Package;
  20.    
  21.    -- --------------------------------------------
  22.    
  23.       Procedure Topp(N: in Integer) is
  24.    begin
  25.       if (N = 5) or (N = 6) then
  26.         PuT_line("|* * *|");
  27.      elsif (N = 3) or (N = 4) then
  28.         Put_Line("| * * |");
  29.      elsif (N = 2) then
  30.         Put_Line("| *   |");
  31.      else
  32.         Put_Line("|     |");
  33.       end if;
  34.    end Topp;
  35.    
  36.    -- -------------------------------------------
  37.    
  38.             Procedure bott(N: in Integer) is
  39.    begin
  40.       if (N = 6) then
  41.         PuT_line("|* * *|");
  42.      elsif (N = 5) or (N = 4) then
  43.         Put_Line("| * * |");
  44.      elsif (N = 3) or (N = 1) then
  45.         Put_Line("|  *  |");
  46.      else
  47.         Put_Line("|   * |");
  48.       end if;
  49.    end bott;
  50.    
  51.    -- -------------------------------------------
  52.    
  53.    procedure Skrivut(ggr : in Integer) is
  54.       G : Generator;
  55.       N : Integer;
  56.       Summa : Integer := 0;
  57.    begin
  58.    Reset(G); -- Detta sätter slumptalsfröet som används för att
  59.          -- ta fram de slumpade talen, skall göras EN gång
  60.          -- per programkörning (varken mer eller mindre)
  61.    for I in 1..ggr loop
  62.       Put_line("+-----+");
  63.       N := Random(G);
  64.       Topp(N);
  65.       Bott(N);
  66.       Put_Line("+-----+");
  67.       New_Line;
  68.       Summa := Summa+N;
  69.    end loop;  
  70.    Put("Summan blev: ");
  71.    Put(Summa, Width => 0);
  72.  
  73.      
  74.    end Skrivut;
  75.  -- ------------------------------------------
  76.    
  77.        ggr : Integer;
  78. begin
  79.    Put("Mata in antal slag: ");
  80.    Get(Ggr);
  81.    New_Line;
  82.    Skrivut(Ggr);
  83. end Rolldie;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement