Gibt bestimmt bessere Algorithmen, aber das wäre so meine erste intuitive Vorgehensweise:
Delphi-Quellcode:
var
Values: array[1..22] of Integer; // Boolean // etc
I: Integer;
Equal: Boolean;
begin
Equal := true;
for I := Low(Values) to High(Values) - 1 do
begin
if (Values[I] <> Values[I + 1]) then
begin
Equal := false;
Break;
end;
end;
end;
Verbesserung zu deinem Algo ist eigentlich nur, dass man nicht diesen komischen "passt" Zähler braucht und dass sich die Schleife direkt beim Ersten Fund eines ungleichen Wertes beendet.