DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 6173 (0x181d) Types: TextFile Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
with Expertsystem; use Expertsystem; with Ne_Robot, Brique; use Ne_Robot, Brique; procedure Ne_Travailler is package Robotetbrique is procedure Miseenboite; end Robotetbrique; package body Robotetbrique is function Peutmettreenboite return Boolean is begin Reglesaisir: declare Rb : Tuple.Object; Unebrique, Unrobot : Reference; function Match (R, B : Reference) return Boolean is begin return Peutprendre (R) and then not Tientbrique (R) and then Surtas (B) and then Laplusgrandedutas (B); end Match; function Robotsaisir is new Tuplecollection.Join2 (Match); begin Rb := Tuplecollection.First (Robotsaisir (All_Robots, Lesbriques)); if Tuple.Isnotnull (Rb) then Unrobot := Tuple.First (Rb); Unebrique := Tuple.Second (Rb); Ne_Robot.Modifierpince (Unrobot, True); Brique.Modifierlieu (Unebrique, Pince); Put ("Le "); Put (Ne_Robot.Nom (Unrobot)); Put (" prend la plus grande brique (taille="); Put (Integer (Brique.Taille (Unebrique))); Put_Line (") du tas dans sa pince "); return True; end if; end Reglesaisir; Regletenir: declare Rb : Tuple.Object; Unrobot : Reference; function Match (R, B : Reference) return Boolean is begin return Peutprendre (R) and then Tientbrique (R) and then Danspince (B) and then Un_Plus_Ancien_Robot (R); end Match; function Robottenir is new Tuplecollection.Join2 (Match); begin Rb := Tuplecollection.First (Robottenir (All_Robots, Lesbriques)); if Tuple.Isnotnull (Rb) then Unrobot := Tuple.First (Rb); Ne_Robot.Modifiertache (Unrobot, Deposer); Ne_Robot.Modifieranc (Unrobot, Ne_Robot.Anciennete); Put ("Le "); Put (Ne_Robot.Nom (Unrobot)); Put_Line (" va deposer la brique "); return True; end if; end Regletenir; Reglecaser: declare Rb : Tuple.Object; Unebrique, Unrobot : Reference; function Match (R, B : Reference) return Boolean is begin return Peutdeposer (R) and then Danspince (B) and then Un_Plus_Ancien_Robot (R); end Match; function Robotcaser is new Tuplecollection.Join2 (Match); begin Rb := Tuplecollection.First (Robotcaser (All_Robots, Lesbriques)); if Tuple.Isnotnull (Rb) then Unrobot := Tuple.First (Rb); Unebrique := Tuple.Second (Rb); Brique.Modifierlieu (Unebrique, Boite); Ne_Robot.Modifiertache (Unrobot, Prendre); Ne_Robot.Modifierboite (Unrobot, Ne_Robot.Derniereboite); Brique.Modifierboite (Unebrique, Ne_Robot.Numeroboite (Unrobot)); Ne_Robot.Modifieranc (Unrobot, Ne_Robot.Anciennete); Put ("Le "); Put (Ne_Robot.Nom (Unrobot)); Put (" depose la brique dans la case"); Put (Integer (Ne_Robot.Numeroboite (Unrobot))); Put_Line (""); Ne_Robot.Modifierpince (Unrobot, False); return True; end if; end Reglecaser; Reglearreter: declare Rb : Tuple.Object; Unrobot : Reference; function Match (R, B : Reference) return Boolean is begin return Peutprendre (R) and then not Tientbrique (R) and then not Surtas (B); end Match; function Robotarreter is new Tuplecollection.Join2 (Match); begin Rb := Tuplecollection.First (Robotarreter (All_Robots, Lesbriques)); if not Tuple.Isnull (Rb) then Unrobot := Tuple.First (Rb); Put ("Le "); Put (Ne_Robot.Nom (Unrobot)); Put_Line (" se suicide (plus de briques)"); Ne_Robot.Sesuicide (Unrobot); return True; end if; end Reglearreter; return False; end Peutmettreenboite; procedure Mettreenboite is begin loop exit when not Peutmettreenboite; end loop; end Mettreenboite; procedure Miseenboite is begin Ne_Robot.Creer; Brique.Creer; loop Mettreenboite; -- autres contextes a traiter exit; end loop; end Miseenboite; end Robotetbrique; begin Robotetbrique.Miseenboite; end Ne_Travailler;