DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦1424b606e⟧ TextFile

    Length: 1598 (0x63e)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦e24fb53b7⟧ 
            └─⟦this⟧ 

TextFile

with Slot;
with Towers_Of_Hanoi_Kbs;
with Towers_Of_Hanoi_Frames;
with Towers_Of_Hanoi_Graphic;
with Towers_Of_Hanoi_Rules_For_Graphic;
with Text_Io;

use Towers_Of_Hanoi_Kbs;
use Towers_Of_Hanoi_Frames;

procedure Towers_Of_Hanoi_Graphic_Solution is  
    use Kbs;

    Initial_Tower_Size : constant := 10;
    Initial_Priority   : constant := 1;
    Disk_Size          : Integer;

    package Toh_Rules renames Towers_Of_Hanoi_Rules_For_Graphic;
    procedure Infere_On_Towers_Of_Hanoi is
       new Kbs.Rule_Base.Infere (Do_Action => Toh_Rules.Do_Action);
begin

    Towers.Add ((Location   => Slot.Value (1),
                 Disk_Count => Slot.Value (Initial_Tower_Size)));

    Towers.Add ((Location   => Slot.Value (2),  
                 Disk_Count => Slot.Value (0)));

    Towers.Add ((Location   => Slot.Value (3),  
                 Disk_Count => Slot.Value (0)));

    for I in 1 .. Initial_Tower_Size loop
        Disk_Size := 12 - I;
        Disks.Add ((Tower => Slot.Value (1),  
                    Level => Slot.Value (I),
                    Size  => Slot.Value (Disk_Size)));

        Towers_Of_Hanoi_Graphic.Print_Disk (1, I, Disk_Size);
    end loop;

    Movements.Add ((From_Tower => Slot.Value (1),
                    To_Tower   => Slot.Value (3),
                    Count      => Slot.Value (Initial_Tower_Size),
                    Priority   => Slot.Value (Initial_Priority)));

    for I in 1 .. 3 loop
        Towers_Of_Hanoi_Graphic.Print_Needle (I, Height => 15);
    end loop;

    delay 1.5;

    Infere_On_Towers_Of_Hanoi;

end Towers_Of_Hanoi_Graphic_Solution;