$SP,"<1>",BI=1$ #define NUM_APPLES 128 I64 x[NUM_APPLES],y[NUM_APPLES], cur_apple,cur_sprite_elem_num,cur_dist, cur_x=0,cur_y=0; U8 buf[128]; U0 DrawIt(CTask *,CDC *dc) { I64 i,best_dist=MAX_I64,best_apple=0,best_sprite_elem_num=0; dc->flags|=DCF_LOCATE_NEAREST; dc->cur_x=cur_x; dc->cur_y=cur_y; dc->cur_z=0; for (i=0;inearest_sprite_elem_num=0; dc->nearest_dist=MAX_I64; Sprite3(dc,x[i],y[i],0,$IB,"<1>",BI=1$); if (dc->nearest_dist<=best_dist) { //Distance to nearest pix, squared //$LK,"Sqrt",A="MN:Sqrt"$() is expensive so we work with distance squared. best_dist=dc->nearest_dist; best_apple=i; //Elements are the individual lines or whatever of the CSprite.u. best_sprite_elem_num=dc->nearest_sprite_elem_num; } } cur_apple=best_apple; cur_dist=best_dist; cur_sprite_elem_num=best_sprite_elem_num; dc->color=WHITE; GrRect(dc,5,5,StrLen(buf)*FONT_WIDTH,FONT_HEIGHT); dc->color=BLACK; GrPrint(dc,5,5,buf); } U0 Pick() { I64 i,msg_code,a1,a2,best_i=0,old_x,old_y; for (i=0;idraw_it=&DrawIt; Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-WIF_SELF_BORDER; try { while (TRUE) { if (GetMsg(&a1,&a2,1<