Hallo!
Und schon wieder gibt es ein kleines Problem.
Nachdem mein Mensch jetzt brav umhermarschiert, ist mir beim
umlagern seines Inhaltes etwas merkwürdiges aufgefallen.
Ich habe einen Menschen, der hintereinander sechs Wegstücke abläuft.
Vier davon sind jeweils mit einem Lager verbunden, und bei zwei
Wegstücken habe ich als Ausgangssteuerung eine Methode, mit welcher der Mensch Fördergüter aus den Lagern entnimmt und auf seiner 3x3
Matrixladefläche ablädt. Das sind 5 Fördergüter und soweit klappt das
auch alles ganz gut.
Wenn ich beim meinem letzten Wegstück, das sowohl mit einer Senke,
als auch wieder mit dem ersten Wegstück verbunden ist, als
Ausgangssteuerung eine Methode definiere, mit der ich über zwei for-Schleifen alle Matrixladefläche-Inhalte auf Inhalt abfrage und bei denen, die ein Fördergut als Inhalt haben, dieses auf die Senke umlagere, klappt das auch problemlos (als Kontrolle habe ich in jeder for-Schleife eine print-Anweisung ("Mensch hat Position 31 umgelagert" oder "Inhalt 33 ist nicht belegt!) und ich bekomme 9 print Ausgaben (wegen 3x3 matrix). Zusätzlich meldet meine "Senkehataufgenommen" Variable, dass die Senke jetzt 5 Stück aufgenommen hat!
Jetzt aber mein Problem: wenn ich nach den 9 Inhaltsabfragen, bei
denen ja angeblich 5-mal auf die Senke umgelagert wurde, mit der
Abfrage @.anzahlBEs checke, wieviele Fördergüter der Mensch noch hat,
dann erhalte ich das Ergebnis 4 und in der Liste sind 4 Fördergüter
zu sehen! Woran könnte dies liegen? Wenn ich die Listen vor und nach
dem umlagern vergleiche, dann ist nur Inhalt (1,1) nicht mehr da,
alle anderen Inhalte (also auch die Indexnummern sind gleich geblieben! Wieso werden diese von der Senke nicht aufgenommen?
Meine Senkenbearbeitungszeit ist 0! Und die Methode läuft ja durch,
sonst würden ja keine Meldungen kommen.
Als Kopie meine Methode und die print-Ausgaben:
is
i : integer;
j : integer;
do
for i := 1 to @.XDim loop
for j := 1 to @.YDim loop
if @.pe(i,j).inhalt /= VOID then
@.pe(i,j).inhalt.umlagern(Senke1);
SenkeHatAufgenommen := SenkeHatAufgenommen + 1;
print "Mensch hat Fördergut von der Position ", i, j, " umgelagert";
else print "Inhalt ", i, j, " ist nicht belegt";
end;
next;
next;
print "Umlagern fertig! Mensch trägt jetzt ", @.anzahlBEs, " Fördergüter mit sich herum";
@.umlagern(Weg14);
end;
Mensch hat Fördergut von der Position 11 umgelagert
Mensch hat Fördergut von der Position 12 umgelagert
Inhalt 13 ist nicht belegt
Mensch hat Fördergut von der Position 21 umgelagert
Mensch hat Fördergut von der Position 22 umgelagert
Inhalt 23 ist nicht belegt
Mensch hat Fördergut von der Position 31 umgelagert
Inhalt 32 ist nicht belegt
Inhalt 33 ist nicht belegt
Umlagern fertig! Mensch trägt jetzt 4 Fördergüter mit sich herum
Vielen Dank!
Gruss!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP