All pastes #586901 Raw Edit

Miscellany

public text v1 · immutable
#586901 ·published 2007-06-24 03:09 UTC
rendered paste body
program new;
{.include SRL/SRL.Scar}

var
  Road2Color,time: integer;

procedure DebugSamples;
var
  c: integer;
  mmColors: array of Integer;
  Hue, Sat, Lum, tX, tY, tZ: Extended;
  tR, tG, tB: integer;
begin
  mmColors := [6714496, 6847619, 6518909, 6781826, 6716802, 6781826, 6387578
   ];
  for c := 0 to getarraylength(mmColors) - 1 do
  begin
    ColorToXYZ(mmColors[c], tX, tY, tZ);
    ColorToHSL(mmColors[c], Hue, Sat, Lum);
    ColorToRGB(mmColors[c], tR, tG, tB);
    Writeln('['+IntToStr(mmColors[c])+']');
    Writeln('H = '+FloatToStr(Hue)+ '; S = '+FloatToStr(sat)+'; L = '+FloatToStr(Lum));
    Writeln('X = '+FloatToStr(tX) + '; Y = '+FloatToStr(tY) +'; Z = '+FloatToStr(tZ));
    Writeln('R = '+FloatToStr(tR) + '; G = '+FloatToStr(tG) +'; B = '+FloatToStr(tB));
    Writeln('');
  end;
  TerminateScript;
end;

function FaladorRoadColor: integer;
var
  RoadPTs, GRoadPts, HoldPts: TPointArray;
  Size, ci, j, tR,t,color, tG, tB: integer;
  RoadColors: TIntegerArray;
begin


for x := 615 to 705 do
  begin
  y:=x-555;
    if (Result > 0)then
    begin
      Writeln('Falador RoadColor = '+IntToStr(Result));
      exit;
    end;
    //ColorToRGB(RoadColors[ci], tR, tG, tB);
    color:=getcolor(x,y);
     if SimilarColors(color,6518909,45) then
    begin
    ColorToRGB(color, tR, tG, tB);

    if (tR > 100) and (tR < 140) and
       (tG > 100) and (tG < 130) and
       (tB > 90 ) and (tB < 105) then
    begin
      FindColorsTolerance(HoldPts, color, x - 5,
     y - 5, x + 5, y + 5, 0);
      if (GetArrayLength(HoldPts) > 10)then
        Result := color;
    end;
    end;
  end;



  y:=85;
  for x := 585 to 696 do
  begin

       if (Result > 0)then
    begin
      Writeln('Falador RoadColor = '+IntToStr(Result));
      exit;
    end;//ColorToRGB(RoadColors[ci], tR, tG, tB);
    color:=getcolor(x,y);
    if SimilarColors(color,6518909,45) then
    begin


    ColorToRGB(color, tR, tG, tB);

    if (tR > 100) and (tR < 140) and
       (tG > 100) and (tG < 130) and
       (tB > 90 ) and (tB < 105) then
    begin
      FindColorsTolerance(HoldPts, color, x - 5,
     y - 5, x + 5, y + 5, 0);
      if (GetArrayLength(HoldPts) > 10)then
        Result := color;
    end;
    end;
  end;
  x:=645;
  for y := 20 to 145 do
  begin

    if (Result > 0)then
    begin
      Writeln('Falador RoadColor = '+IntToStr(Result));
      exit;
    end;
    //ColorToRGB(RoadColors[ci], tR, tG, tB);
    color:=getcolor(x,y);
     if SimilarColors(color,6518909,45) then
    begin
    ColorToRGB(color, tR, tG, tB);

    if (tR > 100) and (tR < 140) and
       (tG > 100) and (tG < 130) and
       (tB > 90 ) and (tB < 105) then
    begin
      FindColorsTolerance(HoldPts, color, x - 5,
     y - 5, x + 5, y + 5, 0);
      if (GetArrayLength(HoldPts) > 10)then
        Result := color;
    end;
    end;
  end;



  for x := 615 to 705 do
  begin
  y:=x-555;
    if (Result > 0)then
    begin
      Writeln('Falador RoadColor = '+IntToStr(Result));
      exit;
    end;
    //ColorToRGB(RoadColors[ci], tR, tG, tB);
    color:=getcolor(x,y);
     if SimilarColors(color,6518909,45) then
    begin
    ColorToRGB(color, tR, tG, tB);

    if (tR > 100) and (tR < 140) and
       (tG > 100) and (tG < 130) and
       (tB > 90 ) and (tB < 105) then
    begin
      FindColorsTolerance(HoldPts, color, x - 5,
     y - 5, x + 5, y + 5, 0);
      if (GetArrayLength(HoldPts) > 10)then
        Result := color;
    end;
    end;
  end;
  y:=150;
  for x := 615 to 705 do
  begin
  y:=y-1;
    if (Result > 0)then
    begin
      Writeln('Falador RoadColor = '+IntToStr(Result));
      exit;
    end;
    //ColorToRGB(RoadColors[ci], tR, tG, tB);
    color:=getcolor(x,y);
     if SimilarColors(color,6518909,45) then
    begin
    ColorToRGB(color, tR, tG, tB);

    if (tR > 100) and (tR < 140) and
       (tG > 100) and (tG < 130) and
       (tB > 90 ) and (tB < 105) then
    begin
      FindColorsTolerance(HoldPts, color, x - 5,
     y - 5, x + 5, y + 5, 0);
      if (GetArrayLength(HoldPts) > 10)then
        Result := color;
    end;
    end;
  end;



  if (Result = 0)then Writeln('ERROR unable to Find FaladorRoadColor !! ');
  ColorToleranceSpeed(1);
end;

begin
  //DebugSamples;
 // SetUpSRL;
  //NewLine := '';
  //ClearDebug;
  //FindWindowBySize(766, 504);
  ActivateClient;
  time:=getsystemtime;
  Road2Color := FaladorRoadColor;
  Writeln('Time took '+IntToStr(getsystemtime-time) + ' ms.');



  end.