sclass G22ColorWalker > G22Walker { // the ideal image it is looking for (set/get) int[] rememberedImage; // size visionW*visionH // only works when we already have a rememberedImage double scorePosition(Pt pos, IRGBImage image) { int vx = pos.x-visionW, vy = pos.y-visionH, i = 0; int diff = 0; for y to visionH: for x to visionW: diff += colorDistance(rememberedImage[i++], image.getIntPixel(vx+x, vy+y)); ret -diff; } bool hasRememberedImage() { ret rememberedImage != null; } void rememberImage(IRGBImage image) { if (rememberedImage == null) rememberedImage = new int[visionW*visionH]; int vx = visionX1(), vy = visionY1(), i = 0; for y to visionH: for x to visionW: rememberedImage[i++] = image.getIntPixel(vx+x, vy+y); } }