%scout window win,rwin,gwin,bwin,uwin; string leftC, midC, rightC; integer maxwin; %eden leftC is "red"; midC is "blue"; rightC is "green"; %donald viewport MAINWIN real center center = 500.0 %eden maxwin is _center+_center; %scout win = { type: DONALD box: [{100,100},{400,400}] pict: "MAINWIN" xmin: 0 xmax: maxwin ymin: 0 ymax: maxwin bgcolor : "yellow" }; rwin = { type :DONALD box :[{0,100},{100,500}] pict: "REDWIN" xmin: 0 xmax: 1000 ymin: 0 ymax: 1000 bgcolor: leftC }; bwin = { type :DONALD box :[{0,0},{500,100}] pict: "BLUEWIN" xmin: 0 xmax: 1000 ymin: 0 ymax: 1000 bgcolor: midC sensitive: ON }; gwin = { type :DONALD box :[{400,100},{500,500}] pict: "GREENWIN" xmin: 0 xmax: 1000 ymin: 0 ymax: 1000 bgcolor: rightC }; uwin = { type :DONALD box :[{100,400},{400,500}] pict: "USERWIN" xmin: 0 xmax: 1000 ymin: 0 ymax: 1000 bgcolor: "grey" sensitive: ON }; screen = ; %donald viewport REDWIN rectangle leftsqr leftsqr = rectangle({0,0},{0,0}) ?A_leftsqr is "fill=solid,color="/leftC//""; %donald viewport BLUEWIN rectangle midsqr midsqr = rectangle({0,0},{0,0}) ?A_midsqr is "fill=solid,color="/midC//""; %donald viewport GREENWIN rectangle rightsqr rightsqr = rectangle({0,0},{0,0}) ?A_rightsqr is "fill=solid,color="/rightC//""; %eden cCol = "red"; c1Col = "green"; c2Col = "blue"; %donald viewport BLUEWIN %eden proc pauseclick : bwin_mouse { if(bwin_mouse[1] == 1 && bwin_mouse[2] == 4 ) { Xb = round(bwin_mouse[4]); Yb = round(bwin_mouse[5]); if (Xb<1000 && Yb<1000){ pauseedenclocks();} } if(bwin_mouse[1] == 1 && bwin_mouse[2] == 5 ) { Xb = round(bwin_mouse[4]); Yb = round(bwin_mouse[5]); if (Xb<1000 && Yb<1000){ unpauseedenclocks();} } } %donald viewport USERWIN point t1,t2,t3,t4,t5,t6,t7,t8,t9 circle cr2,cr3,cr4,cr5,cr6,cr7,cr8,cr9 t1 = {250,250} t2 = {250,500} t3 = {250,750} t4 = {500,250} t5 = {500,500} t6 = {500,750} t7 = {750,250} t8 = {750,500} t9 = {750,750} %eden ####################### X=3; Y=3; t=0; ####################### Points p11 for(i=1;i<=X;i++){ for(j=1;j<=Y;j++){ execute("%donald\npoint p"//str(i)//str(j)); }; }; ####################### Circle c11 for(i=1;i<=X;i++){ for(j=1;j<=Y;j++){ execute("%donald\ncircle c"//str(i)//str(j)); }; }; ####################### Point defining p11={100,100} m=0; n=0; for(i=1;i<=X;i++){ m=m+250; n=0; for(j=1;j<=Y;j++){ n=n+250; execute("%donald\np"//str(i)//str(j)//"={"//str(m)//","//str(n)//"}"); }; }; ######################## circles defining c11 for(i=1;i<=X;i++){ for(j=1;j<=Y;j++){ execute("%donald\nc"//str(i)//str(j)//"="//"circle(p"//str(i)//str(j)//",100)"); }; }; ######################## defining input colors leftC midC rightC ##leftC = "red"; ##midC = "blue"; ##rightC = "green"; %donald viewport USERWIN ?A_c11 is "fill=solid,color="/midC//""; ?A_c12 is "fill=solid,color="/rightC//""; ?A_c13 is "fill=solid,color="/leftC//""; ?A_c21 is "fill=solid,color="/midC//""; ?A_c22 is "fill=solid,color="/rightC//""; ?A_c23 is "fill=solid,color="/leftC//""; ?A_c31 is "fill=solid,color="/midC//""; ?A_c32 is "fill=solid,color="/rightC//""; ?A_c33 is "fill=solid,color="/leftC//""; %eden proc click : uwin_mouse { if(uwin_mouse[1] == 1 && uwin_mouse[2] == 4 ) { X = round(uwin_mouse[4]); Y = round(uwin_mouse[5]); writeln("X=",X); writeln("Y=",Y); if ((X>=150)&&(X<=350)&&(Y>=150)&&(Y<=350)){ writeln("T1 = ",t1); t1=1; cCol= midC; } if ((X>=150)&&(X<=350)&&(Y>=400)&&(Y<=600)){ writeln("T2 = ",t2); t2=1; cCol=rightC; } if ((X>=150)&&(X<=350)&&(Y>=650)&&(Y<=850)){ writeln("T3 = ",t3); t3=1; cCol=leftC; } if ((X>=400)&&(X<=600)&&(Y>=150)&&(Y<=350)){ writeln("T4 = ",t4); t4=1; c1Col=midC; } if ((X>=400)&&(X<=600)&&(Y>=400)&&(Y<=600)){ writeln("T5 = ",t5); t5=1; c1Col=rightC; } if ((X>=400)&&(X<=600)&&(Y>=650)&&(Y<=850)){ writeln("T6 = ",t6); t6=1; c1Col=leftC; } if ((X>=650)&&(X<=850)&&(Y>=150)&&(Y<=350)){ writeln("T7 = ",t7); t7=1; c2Col=midC; } if ((X>=650)&&(X<=850)&&(Y>=400)&&(Y<=600)){ writeln("T8 = ",t8); t8=1; c2Col=rightC; } if ((X>=650)&&(X<=850)&&(Y>=650)&&(Y<=850)){ writeln("T9 = ",t9); t9=1; c2Col=leftC; } if ((t1==1||t2==1||t3==1)&&((t4==1)||(t5==1)||(t6==1))&&((t7==1)||(t8==1)||(t9==1))){ what(); writeln("cond met"); if (t1==1){t1=0;} if (t2==1){t2=0;} if (t3==1){t3=0;} if (t4==1){t4=0;} if (t5==1){t5=0;} if (t6==1){t6=0;} if (t7==1){t7=0;} if (t8==1){t8=0;} if (t9==1){t9=0;} } }} %donald viewport MAINWIN circle c,c1,c2,c3 ?A_c is "fill=solid,color="//cCol; ?A_c1 is "fill=solid,color="//c1Col; ?A_c2 is "fill=solid,color="//c2Col; real center, width, offset, rail, pos , pos2, maxyx, minxy line l,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15,l16,l17,l18,l19,l20,l21,l22 point q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14, q15,q16,q17,q18 point p1,p2,p3,p4,p5,p6,p7,p8,p9 point d1,d2,d3,d4,d5,d6,d7 line dl1,dl2,dl3,dl4,dl5,dl6 real r1,r2,r3,te minxy = 0 * center width = 0.3 * center offset = center * 0.1 rail = center * 0.2 maxyx = center * 2 pos = center-offset-rail pos2 = center-offset d1={center-rail,pos} d2={center,maxyx} d3={center+rail,pos} d4={center-rail,pos2} d5={center+rail,pos2} d6={center,pos} dl1=[d1,d4] dl2=[d6,d2] dl3=[d3,d5] dl4=[d4,d5] dl5=[d4,q7+{minxy,rail}] dl6=[d5,q12+{minxy,rail}] ?A_dl1 = "color=brown,linestyle=dashed"; ?A_dl2 = "color=brown,linestyle=dashed"; ?A_dl3 = "color=brown,linestyle=dashed"; ?A_dl4 = "color=brown,linestyle=dashed"; ?A_dl5 = "color=brown,linestyle=dashed"; ?A_dl6 = "color=brown,linestyle=dashed"; q1 = {center-width,minxy} q2 = {center+width,minxy} q3 = {center-width,center} q4 = {center-offset,center} q5 = {center+offset,center} q6 = {center+width,center} q7 = {minxy,center+(5*offset)} q8 = {minxy,(2*center)-offset} q9 = {center-offset,2*center} q10 = {center+offset,2*center} q11 = {2*center,(2*center)-offset} q12 = {2*center,center+(5*offset)} q13 = {center-width,center-rail} q14 = {center+width,center-rail} ##q15 = {center-width,rail} ##q16 = {center+width,rail} q15 = {center-width,minxy} q16 = {center+width,minxy} q17 = {center-rail,center-offset} q18 = {center+rail,center-offset} l1 = [q1,q13] l2 = [q2,q14] l3 = [q13,q7] l4 = [q4,q8] l5 = [q4,q9] l6 = [q5,q10] l7 = [q5,q11] l8 = [q14,q12] l9 = [q3,q6] l10 = [q13,q14] ##l11 = [q15,q16] l12 = [q3,q13] l13 = [q6,q14] #l14= [q15+{0,10},q16+{0,10}] ?A_l9 = "linestyle=dotted"; ?A_l12 = "linestyle=dotted"; ?A_l13 = "linestyle=dotted"; r1=dist(q13,q7) % eden va is round(_r1); va = va+0.0; _q is(_center+(0.5*_center)-_center+_rail) / va; _te = asin(_q); ######################## creating eden variables for each donald variable ############### pos is _pos; pos2 is _pos2; center is _center; width is _width; offset is _offset; rail is _rail; maxyx is _maxyx; minyx is _minyx; center is _center; small=20; left is _center-_rail; middle is _center; right is _center+_rail; ###############################################################FUNCTION SIMULATION############################################# func Sim{ ############################################ LINES SIMULATION #################################################### setedenclock(&hz1,1); proc hrznt1: hz1{ execute("%donald\nl14=[{center-width,"//str(hz1)//"},{center+width,"//str(hz1)//"}]"); execute("%donald\nl15=[{center-width,"//str(hz1-_center*0.2)//"},{center+width,"//str(hz1-_center*0.2)//"}]"); execute("%donald\nl16=[{center-width,"//str(hz1-_center*0.4)//"},{center+width,"//str(hz1-_center*0.4)//"}]"); execute("%donald\nl17=[{center-width,"//str(hz1-_center*0.6)//"},{center+width,"//str(hz1-_center*0.6)//"}]"); if (hz1==_center*0.6){ todo("removeedenclock(&hz1);"); }} setedenclock(&hz2,1); proc hrznt2: hz2{ execute("%donald\nl18=[{center-width,"//str(hz2+_center*0.2)//"},{center+width,"//str(hz2+_center*0.2)//"}]"); if (hz1+_center*0.2==_center*0.8){ todo("removeedenclock(&hz2);"); }} setedenclock(&hz3,1); proc hrznt3: hz3{ execute("%donald\nl19=[{center-width,"//str(hz3+_center*0.4)//"},{center+width,"//str(hz3+_center*0.4)//"}]"); if (hz3+_center*0.4==_center*0.8){ todo("removeedenclock(&hz3);"); }} setedenclock(&hz4,1); proc hrznt4: hz4{ execute("%donald\nl19=[{center-width,"//str(hz4+_center*0.6)//"},{center+width,"//str(hz4+_center*0.6)//"}]"); if (hz4+_center*0.6==_center*0.8){ todo("removeedenclock(&hz4);"); }} ###################################################### LUGGAGE SIMULATION ########################################### setedenclock(&i, 1); proc proc1 : i{ ## c=p1=left circle execute("%donald\np1={"//str(left)//","//str(i+_offset-1)//"}"); execute("%donald\nc=circle(p1,"//str(small)//")"); ##c1=p2=middle circle execute("%donald\np2={"//str(middle)//","//str(i+_offset-1)//"}"); execute("%donald\nc1=circle(p2,"//str(small)//")"); ##c2=p3=right circle execute("%donald\np3={"//str(right)//","//str(i+_offset-1)//"}"); execute("%donald\nc2=circle(p3,"//str(small)//")"); if(i+_offset-1==pos){ todo("removeedenclock(&i);"); ##writeln("REMOVED ",i); setedenclock(&ii,5); } ################################################### IF C IS RED ########################################################### if ((cCol==leftC) && ((c1Col==leftC)||(c1Col=="green")||(c1Col==midC)||(c2Col==leftC)||(c2Col==rightC)||(c2Col==midC))){ proc proc2: ii{ todo("%donald\np1={"//str(left)//","//str(ii+pos)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if(ii+pos==pos2){ todo("removeedenclock(&ii);"); setedenclock(&iii,1); } proc proc3: iii{ todo("%donald\np1={"//str(-iii)//" @ -te}+q17"); todo("%donald\nc=circle(p1,"//str(small)//")"); ####writeln(iii); if (iii==100){ ## CONDITION 1 CORRECT if((c1Col==leftC)&&((c2Col==leftC)||(c2Col==midC)||(c2Col==rightC))){ setedenclock(&iiii,5); proc proc4: iiii{ todo("%donald\np2={"//str(middle)//","//str(iiii+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(iiii+pos==pos2){ todo("removeedenclock(&iiii);"); setedenclock(&j,5); } proc proc5: j{ todo("%donald\np2={"//str(middle-j)//","//str(pos2)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(middle-j==left){ todo("removeedenclock(&j);"); C1Red(); }}}} ## CONDITION 2 CORRECT if((c1Col!=leftC)&&(c2Col==leftC)) { setedenclock(&ss,5); proc proc44: ss{ todo("%donald\np3={"//str(right)//","//str(ss+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if(ss+pos==pos2){ todo("removeedenclock(&ss);"); C2Red(); }}} ## CONDITION 3 CORRECT if((c1Col!=leftC)&&(c2Col!=leftC)) { setedenclock(&vv,5); proc proc50: vv{ todo("%donald\np2={"//str(middle)//","//str(vv+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(vv+pos==pos2){ todo("removeedenclock(&vv);"); if(c1Col==midC){ C1Blue();} if(c1Col==rightC){ C1Green(); }}}} } if (iii==1000){ todo("removeedenclock(&iii);"); }}}} ################################################## IF C1 IS RED ############################################################ if((c1Col==leftC)&&(cCol!=leftC)&&((c2Col==leftC)||(c2Col==midC)||(c2Col==rightC))){ proc proc2: ii{ todo("%donald\np2={"//str(middle)//","//str(ii+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); Pos2(); proc proc3: iii{ todo("%donald\np2={"//str(middle-iii)//","//str(pos2)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(middle-iii==left){ todo("removeedenclock(&iii);"); C1Red(); }}}} ################################################## IF C2 IS RED ############################################################ if((cCol!=leftC)&&(c1Col!=leftC)&&(c2Col==leftC)){ proc proc2: ii{ todo("%donald\np3={"//str(right)//","//str(ii+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if (ii+pos==pos2){ todo("removeedenclock(&ii);"); C2Red(); }}} ############################################# IF NEITHER IS RED ################################################################# if((cCol!=leftC)&&(c1Col!=leftC)&&(c2Col!=leftC)){ proc proc2: ii{ todo("%donald\np1={"//str(left)//","//str(ii+pos)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if (ii+pos==pos2){ todo("removeedenclock(&ii);"); if (cCol==midC){ CBlue();} if (cCol==rightC){ CGreen();} }}} ############################################################################################################## } } Sim(); func what{ ##if (finished==1){ hz1=0;hz2=0;hz3=0;hz4=0; i=0;ii=0;iii=0;iiii=0;iiiii=0;j=0;jj=0;jjj=0;jjjj=0;mmm=0;qq=0;jjjjj=0;uu=0;ww=0;sss=0;rr=0;rrr=0;jjjm=0; oo=0;bbb=0;hh=0;t=0;tt=0;hh=0;ss=0;bbb=0; bb=0;nn=0; qqq=0;vv=0;ff=0; pp=0; gg=0;kk=0;mm=0;Sim(); } ##}} #################################################################################################################################### ###################################################### F U N C T I O N S ########################################################### #################################################################################################################################### #################################################################################################################################### func Pos2{ if(ii+pos==pos2){ todo("removeedenclock(&ii);"); setedenclock(&iii,5); }} #################################################################################################################################### func CBlue{ setedenclock(&mmm,5); proc proc494: mmm{ todo("%donald\np1={"//str(left+mmm)//","//str(pos2)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if (left+mmm==middle){ todo("removeedenclock(&mmm);"); setedenclock(&bbb,1); }; proc proc435: bbb{ todo("%donald\np1={"//str(middle)//","//str(pos2+bbb)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if (bbb==100){ ##CONDITION 7 CORRECT if((c1Col!=leftC)&&(c2Col!=leftC)){ setedenclock(&j,5); proc proc5: j{ todo("%donald\np2={"//str(middle)//","//str(j+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if((j+pos==pos2)&&(c1Col==midC)){ todo("removeedenclock(&j);"); C1Blue(); } if((j+pos==pos2)&&(c1Col==rightC)){ todo("removeedenclock(&j);"); C1Green(); }}} ##CONDITION 4 if((c1Col==leftC)&&(c2Col!=leftC)){ setedenclock(&nn,5); proc proc6445: nn{ todo("%donald\np3={"//str(right)//","//str(nn+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if(nn+pos==pos2){ todo("removeedenclock(&nn);"); if (c2Col==midC){ C2Blue();} if (c2Col==rightC){ C2Green();} }}} ##CONDITION 6 if((c1Col!=leftC)&&(c2Col==leftC)){ setedenclock(&hh,5); proc proc6354: hh{ todo("%donald\np2={"//str(middle)//","//str(hh+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(hh+pos==pos2){ todo("removeedenclock(&hh);"); if (c1Col==midC){ C1Blue();} if (c1Col==rightC){ C1Green();} }}} } if (bbb ==1000){ todo("removeedenclock(&bbb);"); ## CONDITION 5 if ((c1Col==leftC)&&(c2Col==leftC)){ ##finished = 1; ##what(); }}}}} #################################################################################################################################### func C1Green{ setedenclock(&jj,5); proc proc6: jj{ todo("%donald\np2={"//str(middle+jj)//","//str(pos2)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if (middle+jj==right){ todo("removeedenclock(&jj);"); setedenclock(&sss,1); }; proc proc7: sss{ todo("%donald\np2={"//str(sss)//" @ te}+q18"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if (sss==100){ if(c2Col!=leftC){ setedenclock(&jjjm,5); proc proc8: jjjm{ todo("%donald\np3={"//str(right)//","//str(jjjm+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if((jjjm+pos==pos2)&&(c2Col==midC)){ todo("removeedenclock(&jjjm);"); C2Blue(); } if((jjjm+pos==pos2)&&(c2Col==rightC)){ todo("removeedenclock(&jjjm);"); C2Green(); }}} } if ((sss ==1000)){ todo("removeedenclock(&sss);"); if (c2Col==leftC){ ##finished = 1; ##what(); }}}}} #################################################################################################################################### func C1Blue{ setedenclock(&jj,1); proc proc6: jj{ todo("%donald\np2={"//str(middle)//","//str(jj+pos2)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if (jj==100){ if(c2Col!=leftC){ setedenclock(&qqq,5); proc proc7: qqq{ todo("%donald\np3={"//str(right)//","//str(qqq+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if((qqq+pos==pos2)&&(c2Col==midC)){ todo("removeedenclock(&qqq);"); C2Blue(); } if((qqq+pos==pos2)&&(c2Col==rightC)){ todo("removeedenclock(&qqq);"); C2Green(); }}} } if ((jj==1000)){ todo("removeedenclock(&jj);"); if(c2Col==leftC){ ##finished = 1; ##what(); }; }}} #################################################################################################################################### func C2Blue{ setedenclock(&jjjj,5); proc proc9: jjjj{ todo("%donald\np3={"//str(right-jjjj)//","//str(pos2)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if (right-jjjj==middle){ todo("removeedenclock(&jjjj);"); setedenclock(&jjjjj,1);} proc proc10: jjjjj{ todo("%donald\np3={"//str(middle)//","//str(jjjjj+pos2)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if (jjjjj==1000){ todo("removeedenclock(&jjjjj);"); ##finished = 1; ##what(); }}}} #################################################################################################################################### func CGreen{ setedenclock(&mm,5); proc proc44: mm{ todo("%donald\np1={"//str(left+mm)//","//str(pos2)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if (left+mm==right){ todo("removeedenclock(&mm);"); setedenclock(&bb,1); } proc proc4: bb{ todo("%donald\np1={"//str(bb)//" @ te}+q18"); todo("%donald\nc=circle(p1,"//str(small)//")"); ####writeln(iiii); if (bb==100){ ##CONDITION 7 CORRECT if((c1Col!=leftC)&&(c2Col!=leftC)){ setedenclock(&j,5); proc proc5: j{ todo("%donald\np2={"//str(middle)//","//str(j+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if((j+pos==pos2)&&(c1Col==midC)){ todo("removeedenclock(&j);"); C1Blue(); } if((j+pos==pos2)&&(c1Col==rightC)){ todo("removeedenclock(&j);"); C1Green(); }}} ##CONDITION 4 if((c1Col==leftC)&&(c2Col!=leftC)){ setedenclock(&oo,5); proc proc65: oo{ todo("%donald\np3={"//str(right)//","//str(oo+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if(oo+pos==pos2){ todo("removeedenclock(&oo);"); if (c2Col==midC){ C2Blue();} if (c2Col==rightC){ C2Green();} }}} ##CONDITION 6 if((c1Col!=leftC)&&(c2Col==leftC)){ setedenclock(&nn,5); proc proc654: nn{ todo("%donald\np2={"//str(middle)//","//str(nn+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(nn+pos==pos2){ todo("removeedenclock(&nn);"); if (c1Col==midC){ C1Blue();} if (c1Col==rightC){ C1Green();} }}} } if (bb ==1000){ todo("removeedenclock(&bb);"); ## CONDITION 5 if ((c1Col==leftC)&&(c2Col==leftC)){ ##finished = 1; ##what(); }}}}} ################################################################ FUNC C1-RED #################################################################### func C1Red{ setedenclock(&ww,1); proc proc42: ww{ todo("%donald\np2={"//str(-ww)//" @ -te}+q17"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(ww==100){ ##CONDITION 1 CORRECT if(cCol==leftC){ setedenclock(&jjj,5); proc proc5:jjj{ todo("%donald\np3={"//str(right)//","//str(jjj+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if ((jjj+pos==pos2)&&(c2Col==leftC)){ todo("removeedenclock(&jjj);"); C2Red(); } if ((jjj+pos==pos2)&&(c2Col==midC)){ todo("removeedenclock(&jjj);"); C2Blue(); } if ((jjj+pos==pos2)&&(c2Col==rightC)){ todo("removeedenclock(&jjj);"); C2Green(); }}} ##CONDITION 4 if((cCol!=leftC)&&(c2Col!=leftC)){ setedenclock(&kk,5); proc proc49:kk{ todo("%donald\np1={"//str(left)//","//str(kk+pos)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if (kk+pos==pos2){ todo("removeedenclock(&kk);"); if (cCol==rightC){ CGreen();} if (cCol==midC){ CBlue();} }}} ##CONDITION 5 if((cCol!=leftC)&&(c2Col==leftC)){ setedenclock(&kk,5); proc proc49:kk{ todo("%donald\np3={"//str(right)//","//str(kk+pos)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if (kk+pos==pos2){ todo("removeedenclock(&kk);"); C2Red(); }}} } if (ww==1000){ todo("removeedenclock(&ww);"); }}} ############################################################# FUNC C2-GREEN ####################################################################### func C2Green{ setedenclock(&jjjj,1); proc proc9: jjjj{ todo("%donald\np3={"//str(jjjj)//" @ te}+q18"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if (jjjj==1000){ todo("removeedenclock(&jjjj);"); ##finished = 1; ##what(); }}} ############################################################# FUNC C2-RED ####################################################################### func C2Red{ setedenclock(&t,5); proc proc9: t{ todo("%donald\np3={"//str(right-t)//","//str(pos2)//"}"); todo("%donald\nc2=circle(p3,"//str(small)//")"); if (right-t==left){ todo("removeedenclock(&t);"); setedenclock(&tt,1);} proc proc10: tt{ todo("%donald\np3={"//str(-tt)//" @ -te}+q17"); todo("%donald\nc2=circle(p3,"//str(small)//")"); ## CONDITION 5 CORRECT if ((tt==100)&&(cCol!=leftC)&&(c1Col==leftC)){ setedenclock(&rr,5); proc proc20: rr{ todo("%donald\np1={"//str(left)//","//str(rr+pos)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if(rr+pos==pos2){ todo("removeedenclock(&rr);"); if(cCol==rightC){ CGreen();} if(cCol==midC){ CBlue();} }}} ## CONDITION 2 CORRECT if ((tt==100)&&(c1Col!=leftC)&&(cCol==leftC)){ setedenclock(&rr,5); proc proc20: rr{ todo("%donald\np2={"//str(middle)//","//str(rr+pos)//"}"); todo("%donald\nc1=circle(p2,"//str(small)//")"); if(rr+pos==pos2){ todo("removeedenclock(&rr);"); ##setedenclock(&rrr,1); ## IF C1 BLUE if(c1Col==midC){ ##todo("removeedenclock(&rrr);"); C1Blue(); } ## IF C1 GREEN if (c1Col==rightC){ C1Green(); }}}} ## CONDITION 6 CORRECT if ((tt==100)&&(c1Col!=leftC)&&(cCol!=leftC)){ setedenclock(&uu,5); proc proc25: uu{ todo("%donald\np1={"//str(left)//","//str(uu+pos)//"}"); todo("%donald\nc=circle(p1,"//str(small)//")"); if(uu+pos==pos2){ todo("removeedenclock(&uu);"); if (cCol==rightC){ CGreen();}; if (cCol==midC){ CBlue();}; }}} if ((tt==1000)){ todo("removeedenclock(&tt);"); ##CONDITION 1 if((cCol==leftC)&&(c1Col==leftC)){ ##finished = 1; ##what(); }}}}}