DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦fde9ff706⟧ TextFile

    Length: 26411 (0x672b)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦abbdf8e09⟧ 
            └─⟦this⟧ 

TextFile

with Text_Io, Condition, Order, Index_List, View, View_List,
     Affectation, Order, Coded_Order_Array, Instruction_List, Attribute,
     Field_Identifier_Array, Objet, Animate_List, The_Hero, The_Place,
     Identifier, Moving_String, Detail, Group_Array, Complement,
     Complement_Array, Enumeration_Array, Expression, Coded_Order;
use Text_Io;
procedure Test_Coded_Order_Array is

    I1 : Instruction_List.Object := Instruction_List.Null_Object;
    I2 : Instruction_List.Object := Instruction_List.Null_Object;
    I3 : Instruction_List.Object := Instruction_List.Null_Object;

    Ind_List : Index_List.Object;
    player_order,real_order : Order.Object;
    Ia : Order.Index_Array;
    Vi : View.Object;
    Vi_List : View_List.Object;
    Af : Affectation.Object;
    C1 : Condition.Object := Condition.Null_Object;
    C2 : Condition.Object := Condition.Null_Object;
    C3 : Condition.Object := Condition.Null_Object;

    D1, D2 : Detail.Object;
    A1, A2, A3, A4, A5 : Attribute.Object;
    Ob : Objet.Object;
    Id : Identifier.Object;
    Index : Natural;
    Ok : Boolean;
    F : Expression.Object := Expression.Null_Object;
    L : Expression.Object := Expression.Null_Object;
    R : Expression.Object := Expression.Null_Object;
    F1 : Expression.Object := Expression.Null_Object;
    F2 : Expression.Object := Expression.Null_Object;
    F3 : Expression.Object := Expression.Null_Object;
    F4 : Expression.Object := Expression.Null_Object;
    F5 : Expression.Object := Expression.Null_Object;


    procedure run_order(player_order : in out order.object) is
   
    found : boolean;

    procedure find_order(player_order : in order.object;real_order : out order.object;ok out boolean) is

    found : boolean;

    begin

    put_line("start an run order2");

    order.put_place(real_order,order.place(player_order));

    complement_array.list_group_init(order.complement(player_order,1));
    complement_array.list_group_init(order.complement(player_order,2));
    complement_array.list_group_init(order.complement(player_order,3));
    complement_array.list_group_init(order.complement(player_order,4));

    while not complement_array.list_group_done(order.complement(player_order,1)) and not found done
     while not complement_array.list_group_done(order.complement(player_order,2)) and not found done
      while not complement_array.list_group_done(order.complement(player_order,3)) and not found done
    while not complement_array.list_group_done(order.complement(player_order,4)) and not found done


    Order.Put_first_complement (real_player,complement_array.list_group_name(order.complement(player_order,1)));
    Order.Put_second_complement (real_player,complement_array.list_group_name(order.complement(player_order,2)));
    Order.Put_third_complement (real_player,complement_array.list_group_name(order.complement(player_order,3)));
    Order.Put_fourth_complement (real_player,complement_array.list_group_name(order.complement(player_order,4)));
    
    found := coded_order_array.belong(real_player);

      complement_array.list_group_next(order.complement(player_order,4));
      end loop;
                complement_array.list_group_next(order.complement(player_order,3));
           end loop;
           complement_array.list_group_next(order.complement(player_order,2));
                end loop;
                complement_array.list_group_next(order.complement(player_order,1));
                end loop;


    ok := found;
    put_line("run order finished2");
    end;

    begin

    Order.Put_place (player_order,the_place.image));
    find_order(player_order,ok);
    if ok then
    order.put_redirection(player_order,coded_order_array.redirection(real_player));
    the_order.put(player_order);
    order.show(real_order);
    the_order.show;
    code_order_array.run(real_player)
    else
    Order.Put_place (player_order,"global"));
    find_order(player_order,ok);
    if ok then
     order.put_redirection(player_order,coded_order_array.redirection(real_player));
     the_order.put(player_order);
     order.show(real_order);
     the_order.show;
     code_order_array.run(real_player)
    else
     put_line("l'ordre " & order.image(player_orde) & " n'existe pas");
    end if;
    end if;
    end;

begin

    Enumeration_Array.Put_Literal (Identifier.From_String ("normal"),
                                   Identifier.From_String ("fermee"), Ok);
    Enumeration_Array.Put_Literal (Identifier.From_String ("normal"),
                                   Identifier.From_String ("ouverte"), Ok);
    Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
                                   Identifier.From_String ("rouge"), Ok);
    Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
                                   Identifier.From_String ("jaune"), Ok);
    Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
                                   Identifier.From_String ("vert"), Ok);
    Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
                                   Identifier.From_String ("bleu"), Ok);
    -- Enumeration_Array.Show;

    Field_Identifier_Array.Put (Identifier.From_String ("vie"));  
    Field_Identifier_Array.Put (Identifier.From_String ("nord"));  
    Field_Identifier_Array.Put (Identifier.From_String ("sud"));
    Field_Identifier_Array.Put (Identifier.From_String ("age"));
    Field_Identifier_Array.Put (Identifier.From_String ("nom"));
    Field_Identifier_Array.Put (Identifier.From_String ("couleur"));
    Field_Identifier_Array.Put (Identifier.From_String ("description"));
    --   Field_Identifier_Array.Show;

    Complement_Array.Put (Complement.Entity_Object,
                          Identifier.From_String ("xavier"), Ok);
    Complement_Array.Put (Complement.Entity_Object,
                          Identifier.From_String ("fred"), Ok);
    Complement_Array.Put (Complement.Animate_Object,
                          Identifier.From_String ("gedeon"), Ok);
    Complement_Array.Put (Complement.Entity_Object,
                          Identifier.From_String ("gaston"), Ok);
    Complement_Array.Put (Complement.Entity_Object,
                          Identifier.From_String ("alfred"), Ok);  
    Complement_Array.Put (Complement.Entity_Object,
                          Identifier.From_String ("table"), Ok);
    Complement_Array.Put_Verb (Identifier.From_String ("courir"),
                               Identifier.From_String ("aller"), Ok);
    Complement_Array.Put_Verb (Identifier.From_String ("aller"),
                               Identifier.From_String ("aller"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("de"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("nord"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("est"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("sud"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("ouest"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("vie"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("age"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("nom"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("couleur"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("description"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("porte"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("trou"), Ok);
    Complement_Array.Put (Complement.Place_Object,
                          Identifier.From_String ("cuisine"), Ok);
    Complement_Array.Put (Complement.Place_Object,
                          Identifier.From_String ("chambre"), Ok);
    Complement_Array.Put (Complement.Place_Object,
                          Identifier.From_String ("salon"), Ok);

    Complement_Array.Create_Enumerate_Field
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("nord"), Ok);
    Index := Enumeration_Array.Enum ("normal");
    Complement_Array.Field_Put_Enumerate
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("nord"), Index,
        Enumeration_Array.Literal (Index, "fermee"), Ok);

    Complement_Array.Create_Enumerate_Field
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("sud"), Ok);
    Index := Enumeration_Array.Enum ("normal");
    Complement_Array.Field_Put_Enumerate
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("sud"), Index,
        Enumeration_Array.Literal (Index, "fermee"), Ok);

    Complement_Array.Put_Place (Complement_Array.Index ("gaston"),
                                Complement_Array.Index ("cuisine"), Ok);

    Complement_Array.Put_Movement (Identifier.From_String ("gedeon"),
                                   Complement_Array.Index ("cuisine"));
    Complement_Array.Put_Movement (Identifier.From_String ("gedeon"),
                                   Complement_Array.Index ("salon"));
    Complement_Array.Put_Movement (Identifier.From_String ("gedeon"),
                                   Complement_Array.Index ("chambre"));
    Complement_Array.Put_Movement (Identifier.From_String ("gedeon"),
                                   Complement_Array.Index ("chambre"));
    Complement_Array.Put_Movement (Identifier.From_String ("gedeon"),
                                   Complement_Array.Index ("cuisine"));
    Complement_Array.Put_Movement (Identifier.From_String ("gedeon"),
                                   Complement_Array.Index ("chambre"));

    Animate_List.Put (Complement_Array.Index ("gedeon"), Ok);  -- a tester
    Animate_List.Show;

    Complement_Array.Create_Number_Field
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("age"), Ok);
    Complement_Array.Field_Put_Number
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("age"), 13, Ok);  
    Complement_Array.Create_Number_Field
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("vie"), Ok);
    Complement_Array.Field_Put_Number
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("vie"), 123, Ok);

    Complement_Array.Create_Enumerate_Field
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("couleur"), Ok);
    Index := Enumeration_Array.Enum ("couleur");
    Complement_Array.Field_Put_Enumerate
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("couleur"), Index,
        Enumeration_Array.Literal (Index, "rouge"), Ok);

    Complement_Array.Put_Place (Complement_Array.Index ("gaston"),
                                Complement_Array.Index ("cuisine"), Ok);
    Complement_Array.Put_Place (Complement_Array.Index ("table"),
                                Complement_Array.Index ("cuisine"), Ok);

    Complement_Array.Create_Sentence_Field
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("description"), Ok);
    Complement_Array.Field_Put_Sentence
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("description"),
        Identifier.From_String ("C'est une belle cuisine"), Ok);

    Complement_Array.Put_Exit (Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("porte"),
                               Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("nord"),
                               Complement_Array.Index ("chambre"),
                               Complement_Array.Index ("sud"), Ok);

    Complement_Array.Put_Exit (Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("trou"),
                               Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("ouest"),
                               Complement_Array.Index ("salon"),
                               Complement_Array.Index ("est"), Ok);

    Complement_Array.Create_Sentence_Field
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("description"), Ok);
    Complement_Array.Field_Put_Sentence
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("description"),
        Identifier.From_String ("C'est une belle et grande chambre"), Ok);

    Complement_Array.Put_Exit (Complement_Array.Index ("chambre"),
                               Complement_Array.Index ("porte"),
                               Complement_Array.Index ("chambre"),
                               Complement_Array.Index ("sud"),
                               Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("nord"), Ok);

    Complement_Array.Create_Sentence_Field
       (Complement_Array.Index ("salon"),
        Field_Identifier_Array.Index ("description"), Ok);
    Complement_Array.Field_Put_Sentence
       (Complement_Array.Index ("salon"),
        Field_Identifier_Array.Index ("description"),
        Identifier.From_String ("C'est un grand salon"), Ok);


    Complement_Array.Put_Exit (Complement_Array.Index ("salon"),
                               Complement_Array.Index ("trou"),
                               Complement_Array.Index ("salon"),
                               Complement_Array.Index ("est"),
                               Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("ouest"),ok);

    group_identifier_array.put(identifier.from_string("salle"),ok);
 group_identifier_array.put(identifier.from_string("direction"),ok);

    complement_array.put_group("cuisine",group_identifier_array.index("salle"));
    complement_array.put_group("chambre",dentifier_array.index("salle"));
      complement_array.put_group("salon",group_identifier_array.index("salle"));

          complement_array.put_group("nord",group_identifier_array.index("direction"));
        complement_array.put_group("sud",group_identifier_array.index("direction"));
     complement_array.put_group("ouest",group_identifier_array.index("direction");
             complement_array.put_group("est",group_identifier_array.index("direction"));

    --Complement_Array.Show;


    The_Hero.Put (Complement_Array.Index ("gaston"));
    --  Put_Line ("index the hero : " & Natural'Image (The_Hero.Index));
    --  The_Hero.Show;

    The_Place.Put (Complement_Array.Index ("cuisine"));
    --  Put_Line ("index the place : " & Natural'Image (The_Place.Index));
    --  The_Place.Show;

    Objet.Create_Real (Ob, Complement_Array.Index ("gaston"));
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("age"));
    Attribute.Put (A1, Ob, D1);
    -- Attribute.Show (A1);

    Objet.Create_Real (Ob, Complement_Array.Index ("gaston"));
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("nord"));
    Attribute.Put (A5, Ob, D1);
    --  Attribute.Show (A5);

    Objet.Create_Group (Ob, 5);
    Detail.Create_Field_Group (D1, 3);
    Attribute.Put (A2, Ob, D1);
    --Attribute.Show (A2);

    Objet.Create_Hero (Ob);
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("couleur"));
    Attribute.Put (A3, Ob, D1);
    --  Attribute.Show (A3);

    Objet.Create_Place (Ob);
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("nord"));
    Attribute.Put (A4, Ob, D1);
    -- Attribute.Show (A4);

    Expression.Create (F4, Enumeration_Array.Enum ("normal"),
                       Enumeration_Array.Literal
                          (Enumeration_Array.Enum ("normal"), "ouverte"));
    -- Put_Line ("evaluate f4 : " & Integer'Image (Expression.Evaluate (F4)));
    -- Expression.Show (F4);

    Expression.Create (F5, Enumeration_Array.Enum ("normal"),
                       Enumeration_Array.Literal
                          (Enumeration_Array.Enum ("normal"), "fermee"));
    --  Put_Line ("evaluate f5 : " & Integer'Image (Expression.Evaluate (F5)));
    --  Expression.Show (F5);

    Expression.Create (L, 5);
    Expression.Create (R, 8);
    Expression.Create (F1, Expression.Add, L, R, Ok);
    --  Put_Line ("ok : " & Boolean'Image (Ok));
    --  Put_Line ("evaluate f1 : " & Integer'Image (Expression.Evaluate (F1)));
    --  Expression.Show (F1);

    Expression.Create (F2, Expression.Substract, L, R, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --  Put_Line ("evaluate f2 : " & Integer'Image (Expression.Evaluate (F2)));
    --  Expression.Show (F2);

    Expression.Create (L, A1);
    Expression.Create (R, 3);
    Expression.Create (F3, Expression.Add, L, R, Ok);
    --  Put_Line ("ok : " & Boolean'Image (Ok));
    --  Put_Line ("evaluate f3 : " & Integer'Image (Expression.Evaluate (F3)));
    --  Expression.Show (F3);


    Expression.Create (L, 107);
    Expression.Create (R, 20);
    Expression.Create (F, Expression.Add, L, R, Ok);
    --  Put_Line ("ok : " & Boolean'Image (Ok));

    Condition.Create_Compare (C1, A1, Condition.Visible.Equal, F, Ok); -- faux
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --  Put_Line ("is right vide : " & Boolean'Image (Condition.Is_Right (C1)));

    Condition.Create_Compare (C2, A1, Condition.Visible.Less, F, Ok); -- vrai
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Condition.Show (C2);
    --  Put_Line ("is right: " & Boolean'Image (Condition.Is_Right (C2)));

    Condition.Create_Compare (C3, A4, Condition.Visible.Equal, F4, Ok);  -- faux
    --  Put_Line ("ok : " & Boolean'Image (Ok));
    --  Condition.Show (C3);
    -- Put_Line ("is right : " & Boolean'Image (Condition.Is_Right (C3)));



    Detail.Create_Real_Complement (D1, Complement_Array.Index ("alfred"));
    Affectation.Create_Hero (Af, D1);
    --  Affectation.Show (Af);

    Order.Put_Place (real_player, Moving_String.From_String ("cuisine"));
    Order.Put_First_Complement (real_player, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (real_player, Moving_String.From_String ("direction"));
    Order.Put_Third_Complement (real_player, Moving_String.From_String ("de"));
    Order.Put_Fourth_Complement (real_player,
                                 Moving_String.From_String ("salle"));
    Ia := (1, 2, 3, 4, 5);
    Order.Put_Redirection (real_player, Ia);

    Objet.Create_Group (Ob, 5);
    Detail.Create_Complement_Group (D2, 3);
    Detail.Create_Field_Group (D1, 3);
    Attribute.Put (A1, Ob, D1);    -- nord de cuisine

    Objet.Create_Group (Ob, 5);
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("sud"));
    Attribute.Put (A2, Ob, D1);    -- sud de cuisine

    Detail.Create_Complement_Group (D1, 3);

    View_List.Free (Vi_List);
    View.Create_Sentence (Vi, Identifier.From_String
                                 ("aller direction de salle "));
    View_List.Put (Vi_List, Vi);
    View.Create_Exit (Vi, D1);
    View_List.Put (Vi_List, Vi);
    View.Create_Attribute (Vi, A2);
    View_List.Put (Vi_List, Vi);
    View.Create_Attribute (Vi, A1);
    View_List.Put (Vi_List, Vi);
    Instruction_List.Insert_Display (I1, Vi_List);
    Instruction_List.Insert_Next_Line (I1);
    Instruction_List.Insert_Go (I1, D2);

    Coded_Order_Array.Put (real_player, I1, Ok);
    Put_Line ("put ok :" & Boolean'Image (Ok));

    Order.Put_Place (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("nord"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("de"));
    Order.Put_Fourth_Complement (player_order,
                                 Moving_String.From_String ("cuisine"));
  
    order.put_redirection(player_order,coded_order_array.redirection(real_player));
    the_order.put(player_order);
    the_order.show;

    Coded_Order_Array.Run (real_player, Ok);
    Put_Line ("run ok :" & Boolean'Image (Ok));
    Put_Line ("at end :" & Boolean'Image (Coded_Order_Array.Is_At_End));
    Put_Line (The_Place.Image);

    Order.Put_Place (real_player, Moving_String.From_String ("cuisine"));
    Order.Put_First_Complement (real_player, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (real_player,
                                 Moving_String.From_String ("salle"));
    Order.Put_Third_Complement (real_player, Moving_String.From_String ("direction"));
    Order.Put_Fourth_Complement (real_player, Moving_String.From_String (""));
    Ia := (1, 2, 4, 4, 3);
    Order.Put_Redirection (real_player, Ia);

    I1 := Instruction_List.Null_Object;
    View_List.Free (Vi_List);
    View.Create_Sentence (Vi, Identifier.From_String ("aller salle direction "));
    View_List.Put (Vi_List, Vi);
    View_List.Put (Vi_List, Vi);
    View.Create_Exit (Vi, D1);
    View_List.Put (Vi_List, Vi);
    View.Create_Attribute (Vi, A1);
    View_List.Put (Vi_List, Vi);
    Instruction_List.Insert_Display (I1, Vi_List);
    Instruction_List.Insert_Next_Line (I1);
    Detail.Create_Real_Complement (D2, Complement_Array.Index ("sud"));
    Instruction_List.Insert_Go (I1, D2);

    Coded_Order_Array.Put (player_order, I1, Ok);
    Put_Line ("put ok :" & Boolean'Image (Ok));

     Order.Put_Place (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("nord"));
    Order.Put_Fourth_Complement (player_order,
                                 Moving_String.From_String (""));
    order.put_redirection(player_order,coded_order_array.redirection(real_player));
    the_order.put(player_order);
    the_order.show;

    Coded_Order_Array.Run (real_player, Ok);
    Put_Line ("run ok :" & Boolean'Image (Ok));
    Put_Line ("at end :" & Boolean'Image (Coded_Order_Array.Is_At_End));
    Put_Line (The_Place.Image);

    Order.Put_Place (real_player, Moving_String.From_String ("cuisine"));
    Order.Put_First_Complement (real_player, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (real_player, Moving_String.From_String ("a"));
    Order.Put_Third_Complement (real_player,
                                Moving_String.From_String ("salle"));
    Order.Put_Fourth_Complement (real_player, Moving_String.From_String ("direction"));
    Ia := (1,2,5,4,4);
    Order.Put_Redirection (real_player, Ia);

    I1 := Instruction_List.Null_Object;
    View_List.Free (Vi_List);
    View.Create_Sentence (Vi, Identifier.From_String ("aller a salle direction "));
    View_List.Put (Vi_List, Vi);
    View.Create_Exit (Vi, D1);
    View_List.Put (Vi_List, Vi);
    View.Create_Attribute (Vi, A1);
    View_List.Put (Vi_List, Vi);
    Instruction_List.Insert_Display (I1, Vi_List);
    Instruction_List.Insert_Next_Line (I1);
    Detail.Create_Real_Complement (D2, Complement_Array.Index ("sud"));
    Instruction_List.Insert_Go (I1, D2);
    Instruction_List.Insert_Stop (I1);

    Coded_Order_Array.Put (player_order, I1, Ok);
    Put_Line ("put ok :" & Boolean'Image (Ok));  
    Coded_Order_Array.Put (player_order, I1, Ok);
    Put_Line ("put ok :" & Boolean'Image (Ok));

    Order.Put_Place (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("a"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_Fourth_Complement (player_order,
                                 Moving_String.From_String ("nord"));
  
    order.put_redirection(player_order,coded_order_array.redirection(real_player));
    the_order.put(player_order);
    the_order.show;

    Coded_Order_Array.Run (real_player, Ok);
    Put_Line ("run ok :" & Boolean'Image (Ok));
    Put_Line ("at end :" & Boolean'Image (Coded_Order_Array.Is_At_End));
    Put_Line (The_Place.Image);

    Coded_Order_Array.Show;

    Order.Put_Place (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("a"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_Fourth_Complement (player_order, Moving_String.From_String ("nord"));
    Ia := (1, 2, 5, 4, 4);
    Order.Put_Redirection (player_order, Ia);

    Coded_Order_Array.Run (player_order, Ok);
    Put_Line ("run ok :" & Boolean'Image (Ok));
    Put_Line (The_Place.Image);


    Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("a"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("cuisine"));
    Order.Put_Fourth_Complement (player_order,
                                 Moving_String.From_String ("nord")); 

    run_order(player_order);

     Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("a"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("chambre"));
    Order.Put_Fourth_Complement (player_order,
                                 Moving_String.From_String ("sud")); 

    run_order(player_order);

     Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("ouest"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("de"));
    Order.Put_Fourth_Complement (player_order,
                                 Moving_String.From_String ("cuisine")); 

    run_order(player_order);

     Order.Put_First_Complement (player_order, Moving_String.From_String ("aller"));
    Order.Put_Second_Complement (player_order, Moving_String.From_String ("salon"));
    Order.Put_Third_Complement (player_order, Moving_String.From_String ("est"));
    Order.Put_Fourth_Complement (player_order,
                                 Moving_String.From_String ("")); 

    run_order(player_order);

end Test_Coded_Order_Array