!752 static BWImage bw; static Thread producer; static Reproducing rp; static ImageSurface imageSurface; !include #1004562 // column prediction !include #1004570 // predictors p { rp = new Reproducing; //bw = loadBWImage("#1004541"); //bw = makeTriangle(); Font font = loadFont("#1004569"); // "Ticketing" bw = new BWImage(renderText(font, 20f, "ABC 123 + 456 = 789")); imageSurface = showBWImage(bw); rp.bw = bw; //rp.imageSurfaceToUpdateWithBest = showImage(bw.getBufferedImage()); //rp.startProduction = r { produce() }; //rp.search(); //showColumnErrors("LookLeft(width=8)"); produce(); while licensed { S desc = grabFromQueue(rp.newProducts); Predictor p = makePredictor(desc); float[][] cols = rp.getCols(); double score = testColumnRange(p, cols, 0, 15, l(cols)); print(desc); print(" " + score); //imageSurface.setImage(renderPrediction(desc, cols)); } } static void produce() { cancelThread(producer); producer = new Thread(r { // STRATEGY! rp.push("RepeatColumn"); rp.push("ShiftDown"); rp.push("LookLeft(width=7)"); rp.push("LookLeft(width=8)"); rp.push("LookLeft(width=9)"); rp.push("LookLeft(width=10)"); }, "Producer"); producer.start(); }