Advertisement
Guest User

RobotiKokoti

a guest
Apr 24th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 38.30 KB | None | 0 0
  1. % program na hladanie kociek robotom v bludisku s prekazkami,
  2. % robot ma 3 snimace prekazok (vpredu, vlavo, vpravo), otaca sa o 90stupnov
  3. % vlavo alebo vpravo, ide iba dopredu
  4. % cielom je najst vsetky kocky v bludisku, po najdeni kocky ju priniest do
  5. % ciela do pozicie (40,40) 1. typ objektu, do pozicie (1,40) 2. typ objektu
  6.  
  7. % toto riesenie obsahuje aj radar na hladanie kocky v def. okruhu, po
  8. % najdeni kocky ju zoberie do ciela
  9.  
  10. %robot=[poziciaX poziciaY snimacLavo snimacPravo snimacVpred pohyb otocenie smer kocka prekazka cielx ciely offset_rand gain_rand]
  11.  
  12. % poziciaX - stlpec 1 az 40, poziciaY - riadok 1 az 40
  13.  
  14. % snimacLavo snimacPravo snimacVpred , 0-volne, 1-prekazka, 2-kocka,
  15. % 3-iny robot
  16.  
  17. % pohyb , 0-stoji, 1-ide
  18.  
  19. % otocenie, 0-rovno, 1-doprava, 2-dolava
  20.  
  21. % smer, 1-hore, 2-dole, 3-doprava, 4-dolava
  22.  
  23. % kocka, 0-nema kocku,hlada ju, 1-nesie kocku na ciel (40,40), 2 - ide na
  24. % definovany ciel
  25.  
  26. % prekazka, kde je prekazka 0-nie je, 1-hore, 2-dole, 3-doprava, 4-dolava,
  27. % ak su zaporne hodnoty, prekazka je v cieli
  28.  
  29. % typ kocka , 1 - objekt 1. typu (napr. jablko, hruska), 2  - objekt 2. typu (napr. banan, pomaranc, citron)
  30.  
  31. % cielX - stlpec 1 az 40, cielY - riadok 1 az 40
  32.  
  33. % param1, param2 - parametre pre random hladanie
  34.  
  35. % hlavna funkcia
  36. function [caszberu]=mainrobot(pocetkociek,pocetprekazok)
  37.  
  38. h1=figure;
  39.  
  40. % definovanie color mapy 1-pozadie, 2-prekazka, 3-robot, 4-robot s kockou,
  41. % 5- kocka 1 typ ,  6- kocka 2 typ,  7 - neodkryta mapa
  42. colormaprobot=[1 1 1;0 0 0;0 1 0;1 0 0;0 0 1;1 0 1;1 1 0];
  43. mapa=ones(42);
  44. mapa(1,:)=2;
  45. mapa(42,:)=2;
  46. mapa(:,1)=2;
  47. mapa(:,42)=2;
  48.  
  49. % budovana mapa 1-pozadie, 2-prekazka, 3-robot, 4-robot s kockou,
  50. % 5- kocka 1 typ ,  6- kocka 2 typ,  7 - neodkryta mapa
  51. mapazobraz=7*ones(42);
  52. mapazobraz(1,:)=2;
  53. mapazobraz(42,:)=2;
  54. mapazobraz(:,1)=2;
  55. mapazobraz(:,42)=2;
  56.  
  57. odkrytiemapy=zeros(42);
  58.  
  59. % definovanie prekazok
  60. if pocetprekazok>0
  61. mapa(2:5,8)=2;
  62. mapa(6,8:10)=2;
  63.  
  64. mapa(2:7,23)=2;
  65. mapa(8,19:23)=2;
  66.  
  67. mapa(34:41,28)=2;
  68. mapa(34,25:28)=2;
  69.  
  70. mapa(34,10:12)=2;
  71. mapa(35:41,10)=2;
  72.  
  73. mapa(20,32:41)=2;
  74. mapa(18:22,32)=2;
  75.  
  76. mapa(22,12:20)=2;
  77. mapa(19:25,16)=2;
  78.  
  79. end
  80.  
  81. stanicaX=40;
  82. stanicaY=40;
  83.  
  84. pocetrobot=3;
  85.  
  86. % maximalny cas trvania simulacie
  87. maxcashladania=120*pocetkociek;
  88.  
  89. % zoznam kociek
  90. % 1-pozicia X, 2-pozicia Y, 3 - stav kocky, 4 - typ, 5 - parameter 1, 6 - parameter 2, 7 - parameter 3  
  91. zoznamkociek=[];
  92.  
  93. % definovanie parametrov robota
  94. roboti(1)=struct('poziciaX',1,'poziciaY',1,'snimacLavo',1,'snimacPravo',0,'snimacVpred',1,'pohyb',0,'otocenie',0, ...
  95.         'smer',1,'kocka',0,'prekazka',0,'typkocka',1,'cielX',40,'cielY',40,'param1',10,'param2',40,'pocitadlo',0,'maxkrok',0,'bludenie',0);
  96.  
  97. % zakreslenie robota
  98. mapa(2,2)=3;
  99.  
  100. if pocetrobot>1
  101.     %roboti(2,:)=[1 40 1 0 0 0 0 1 0 0 40 40 3 20];
  102. roboti(2)=struct('poziciaX',1,'poziciaY',40,'snimacLavo',1,'snimacPravo',0,'snimacVpred',0,'pohyb',0,'otocenie',0, ...
  103.         'smer',1,'kocka',0,'prekazka',0,'typkocka',1,'cielX',40,'cielY',40,'param1',3,'param2',20,'pocitadlo',0,'maxkrok',0,'bludenie',0);
  104.    
  105.     mapa(41,2)=3;
  106.     if pocetrobot>2
  107. %        roboti(3,:)=[40 1 1 0 0 0 0 2 0 0 40 40 8 30];
  108. roboti(3)=struct('poziciaX',40,'poziciaY',1,'snimacLavo',1,'snimacPravo',0,'snimacVpred',0,'pohyb',0,'otocenie',0, ...
  109.         'smer',2,'kocka',0,'prekazka',0,'typkocka',1,'cielX',40,'cielY',40,'param1',8,'param2',30,'pocitadlo',0,'maxkrok',0,'bludenie',0);
  110.  
  111.         mapa(2,41)=3;
  112.         pocetrobot=3;
  113.     end
  114. end
  115.  
  116. % parametre na nahodne hladanie
  117. for ii=1:pocetrobot,
  118.     roboti(ii).maxkrok=fix(40*rand);
  119. end
  120.  
  121. khladaj=zeros(1,pocetrobot);
  122. nahodahladaj=fix(40*rand(1,pocetrobot));
  123. timeout=[0 0 0];
  124.  
  125. % parametre na nahodne hladanie
  126. % khladaj=0;
  127. % nahodahladaj=fix(40*rand(1,1));
  128.  
  129. % definovanie pozicii kociek
  130. kockypos=[4 11;15 22;23 18;25 35;37 16;37 5;10 6;22 8;35 32;8 32;15 35;12 15;30 20;12 28;20 25;33 3;28 9; ...
  131.                 14 9;4 21;4 28;38 24;12 38;28 14;3 16;17 13;26 4;26 26;5 6;16 5;29 31;38 12;32 36;38 20;3 35;10 11];
  132.            
  133. if pocetkociek>35
  134.     pocetkociek=35;
  135. end
  136. indx=randperm(35);
  137. for i=1:pocetkociek,
  138.     if rand(1)>0.5
  139.         mapa(kockypos(indx(i),1),kockypos(indx(i),2))=5;
  140.     else
  141.         mapa(kockypos(indx(i),1),kockypos(indx(i),2))=6;
  142.     end
  143. end
  144.  
  145. % pociatocne vykreslenie mapy
  146. colormap(colormaprobot);
  147. hmapa=image(mapa);
  148. k=0;
  149. pocetuloh=0;
  150. title(['ulozene kocky = ' num2str(pocetuloh)])
  151.  
  152. % % zobrazenie budovanej mapy
  153. % h2=figure;
  154. % colormap(colormaprobot);
  155. % hmapa2=image(mapazobraz);
  156.  
  157.  
  158. % hlavny cyklus
  159. while k<maxcashladania && pocetuloh~=pocetkociek;
  160.     k=k+1;
  161.     for rrob=1:pocetrobot,
  162.        
  163.         % vyber pixelov z mapy
  164.         hp=mapa(roboti(rrob).poziciaY,roboti(rrob).poziciaX+1);
  165.         dp=mapa(roboti(rrob).poziciaY+2,roboti(rrob).poziciaX+1);
  166.         pp=mapa(roboti(rrob).poziciaY+1,roboti(rrob).poziciaX+2);
  167.         vp=mapa(roboti(rrob).poziciaY+1,roboti(rrob).poziciaX);
  168.        
  169.         % nastavenie snimacov robota
  170.         [vs,ps,hs]=nastavsnimace(roboti(rrob),hp,dp,pp,vp);
  171.              
  172.         roboti(rrob).snimacLavo=vs;
  173.         roboti(rrob).snimacPravo=ps;
  174.         roboti(rrob).snimacVpred=hs;
  175.        
  176.         % chod do stanice
  177.         if roboti(rrob).kocka==1
  178.             %novysmer=choddostanice(roboti(rrob));
  179.             if roboti(rrob).typkocka==2
  180.                 roboti(rrob).cielX=40;
  181.                 roboti(rrob).cielY=1;
  182.             else
  183.                 roboti(rrob).cielX=40;
  184.                 roboti(rrob).cielY=40;
  185.             end
  186.             [novysmer,novaprekazka]=chodnaciel(roboti(rrob));
  187.             roboti(rrob).prekazka=novaprekazka;
  188.             if novysmer>-1
  189.                 roboti(rrob).otocenie=novysmer;
  190.                 roboti(rrob).pohyb=1;
  191.                 timeout(rrob)=0;
  192.             else
  193.                 if novaprekazka<0
  194.                     roboti(rrob).otocenie=0;
  195.                     roboti(rrob).prekazka=0;
  196.                     roboti(rrob).smer=abs(novaprekazka);
  197.                 else
  198.                
  199.                     roboti(rrob).pohyb=0;
  200.                     timeout(rrob)=timeout(rrob)+1;
  201.                     if timeout(rrob)>3
  202.                         if rem(roboti(rrob).smer,2)==1
  203.                             roboti(rrob).smer=roboti(rrob).smer+1;
  204.                         else
  205.                             roboti(rrob).smer=roboti(rrob).smer-1;                  
  206.                         end
  207.                         timeout(rrob)=0;
  208.                     end
  209.                 end
  210.             end
  211.            
  212.         % chod na ciel    
  213.         elseif roboti(rrob).kocka==2
  214.             [novysmer,novaprekazka]=chodnaciel(roboti(rrob));
  215.             roboti(rrob).prekazka=novaprekazka;
  216.             if novysmer>-1
  217.                 roboti(rrob).otocenie=novysmer;
  218.                 roboti(rrob).pohyb=1;
  219.                 timeout(rrob)=0;
  220.             else
  221.                 % ak je prekazka v cieli kocka, zober ju
  222.                 if novaprekazka<0
  223.                     roboti(rrob).otocenie=0;
  224.                     roboti(rrob).prekazka=0;
  225.                     roboti(rrob).smer=abs(novaprekazka);
  226.                 else
  227.  
  228.                     roboti(rrob).pohyb=0;
  229.                     if roboti(rrob).poziciaX==roboti(rrob).cielX && roboti(rrob).poziciaY==roboti(rrob).cielY
  230.                         roboti(rrob).kocka=0;
  231.  
  232.                     end
  233. %                     timeout(rrob)=timeout(rrob)+1;
  234. %                     if timeout(rrob)>5
  235. %                         if rem(roboti(rrob).smer,2)==1
  236. %                             roboti(rrob).smer=roboti(rrob).smer+1;
  237. %                         else
  238. %                             roboti(rrob).smer=roboti(rrob).smer-1;                  
  239. %                         end
  240. %                         timeout(rrob)=0;
  241. %                     end
  242.                    
  243.                 end
  244.             end    
  245.            
  246.             % nahodne hladanie
  247.         else
  248.             [novysmer,kk,nahoda]=nahodnehladanie(roboti(rrob),khladaj(rrob),nahodahladaj(rrob));
  249.             % nastavenie smeru
  250.             if novysmer>-1
  251.                 roboti(rrob).otocenie=novysmer;
  252.                 roboti(rrob).pohyb=1;
  253.             else
  254.                 roboti(rrob).pohyb=0;
  255.                 if rem(roboti(rrob).smer,2)==1
  256.                     roboti(rrob).smer=roboti(rrob).smer+1;
  257.                 else
  258.                     roboti(rrob).smer=roboti(rrob).smer-1;                  
  259.                 end
  260.                
  261.             end
  262.             khladaj(rrob)=kk;
  263.             nahodahladaj(rrob)=nahoda;
  264.         end
  265.        
  266.         % nastav novu poziciu robota
  267.         stareX=roboti(rrob).poziciaX;
  268.         stareY=roboti(rrob).poziciaY;
  269.         mapa(stareY+1,stareX+1)=1;
  270.  
  271.         noveX=stareX;
  272.         noveY=stareY;
  273.        
  274.         % ak je robot v pohybe nastav smer cesty
  275.         if roboti(rrob).pohyb==1
  276.             [posX,posY,otoc]=nastavsmercesty(roboti(rrob));
  277.             noveX=posX;
  278.             noveY=posY;
  279.             if otoc>0
  280.                 roboti(rrob).smer=otoc;
  281.             end
  282.  
  283.         end
  284.            
  285.         roboti(rrob).poziciaX=noveX;
  286.         roboti(rrob).poziciaY=noveY;
  287.        
  288.         % co vykona robot v jednotlivych stavoch
  289.         [robotstav,nasielkocku,polozilkocku,zoznamkociek]=akciarobot(roboti(rrob),mapa,zoznamkociek,odkrytiemapy);
  290.         roboti(rrob)=robotstav;
  291.        
  292.         % kontrola ci nahodou neprejde prekazku
  293.         if mapa(roboti(rrob).poziciaY+1,roboti(rrob).poziciaX+1)==2
  294.              noveX=stareX;
  295.              noveY=stareY;
  296.             roboti(rrob).poziciaX=noveX;
  297.             roboti(rrob).poziciaY=noveY;
  298.         end
  299.        
  300.         % zakreslenie novej pozicie robota
  301.         if roboti(rrob).kocka==1
  302.             mapa(noveY+1,noveX+1)=4;
  303.         else
  304.             mapa(noveY+1,noveX+1)=3;
  305.         end
  306.        
  307. %         % budovanie mapy
  308. %         odkrytiemapy=budujmapu(odkrytiemapy,roboti(rrob));
  309.        
  310.         % prekreslenie mapy
  311.         figure(h1)
  312.         set(hmapa,'CData',mapa)
  313.  
  314.         % vypisy do okna
  315.         if nasielkocku==1
  316.             title(['ulozene kocky = ' num2str(pocetuloh) ' cas [s] = ' num2str(k)])
  317.         end
  318.         if polozilkocku==1
  319.                pocetuloh=pocetuloh+1;
  320.                title(['ulozene kocky = ' num2str(pocetuloh) ' cas [s] = ' num2str(k)])
  321.         end
  322.        
  323.         % na spomalenie priebehu simulacie
  324.         pause(0.001)
  325.  
  326.     end
  327.    
  328. %     if rem(k,5)==0
  329. %         figure(h2)
  330. %         set(hmapa2,'CData',mapazobraz)        
  331. %     end
  332.        
  333. end
  334. caszberu=k;
  335. end
  336.  
  337.  
  338. % fukcia, ktora riesi akcie, co sa robot robit v urcitych stavoch
  339. % robot - struktura robota
  340. % mapab - aktualna mapa bludiska
  341. % zkvstup - zoznam najdenych kociek
  342. % odkrytiemapy1 - kde uz bol
  343. function [robotupdate,nasielkocku,polozilkocku,zkvystup]=akciarobot(robot,mapab,zkvstup,odkrytiemapy1)
  344.  
  345.         dosahradaru=3;
  346.         nasielkocku=0;
  347.         polozilkocku=0;
  348.         zkvystup=zkvstup;
  349.        
  350.         % ak nasiel kocku, nastav stav zober kocku
  351.         if mapab(robot.poziciaY+1,robot.poziciaX+1)==5 || mapab(robot.poziciaY+1,robot.poziciaX+1)==6
  352.             robot.kocka=1;
  353.             robot.smer=2;
  354.             robot.otocenie=0;
  355.             nasielkocku=1;
  356.             robot.typkocka=1;
  357.            
  358.             % doplnit rozpoznavanie pomocou NS
  359.             % [typkocky,paramkocky]=citajparamkocky(mapab,robot.poziciaX,robot.poziciaY);
  360.            
  361.         end
  362.  
  363.         % ak nesie kocku
  364.         if robot.kocka==1
  365.            
  366.             [poziciakocky] = najdikocku(robot, mapab, dosahradaru);
  367.                
  368.                 if sum(ismember([poziciakocky],zkvystup)) == 0
  369.                     zkvystup = [zkvystup;poziciakocky];
  370.                 end
  371.             % ak priniesol kocku do ciela
  372.             if robot.typkocka==1
  373.                 if robot.poziciaX==40 && robot.poziciaY==40
  374.                     %robot.kocka=0;
  375.                     polozilkocku=1;
  376.                    
  377.                     if ~(isempty(zkvystup))
  378.                         robot.cielY = zkvystup(1,1);
  379.                         robot.cielX = zkvystup(1,2);
  380.                         zkvystup(1,:) = [];
  381.                        
  382.                         robot.kocka = 2;
  383.                     else
  384.                         robot.kocka = 0;
  385.                     end
  386.                    
  387.                 end
  388.             elseif robot.typkocka==2
  389.                 if robot.poziciaX==40 && robot.poziciaY==1
  390.                     robot.kocka=0;
  391.                     polozilkocku=1;
  392.                 end                
  393.             end
  394.         end
  395.  
  396.         % ak nema kocku prehlada priestor ultrazvukom
  397.         if robot.kocka==0
  398.             [najdenepozkocky]=najdikocku(robot,mapab,dosahradaru);
  399.             % ak najde kocku nastavi ciel na jej poziciu
  400.             if isempty(najdenepozkocky)==0
  401.                 robot.cielX=najdenepozkocky(1,2);
  402.                 robot.cielY=najdenepozkocky(1,1);
  403.                 robot.kocka=2;
  404.             end
  405.         end
  406.         robotupdate=robot;
  407. end
  408.  
  409.  
  410. % funkcia na budovanie mapy
  411. function odkrytiemapy2=budujmapu(odkrytiemapy1,robot)
  412.     odkrytiemapy2=odkrytiemapy1;
  413.    
  414.     % doprogramovavat
  415.  
  416.  
  417. end
  418.  
  419.  
  420. % funkcia, ktora vrati parametre objektu a jeho typ
  421. function [typkocky,paramkocky]=citajparamkocky(mapab,posX,posY)
  422.  
  423. pd=[0.91 0.07 0.91 0.03 0.5 0.4;0.75 0.15 0.77 0.06 0.57 0.27; ...
  424. 0.33 0.23 0.3 0.2 0.75 0.15;0.73 0.08 0.92 0.03 0.47 0.18;0.5 0.15 0.83 0.08 0.7 0.13];
  425.  
  426. paramkocky=zeros(1,3);
  427.  
  428.             % doplnit rozpoznavanie pomocou NS
  429.             if mapab(posY+1,posX+1)==6
  430.                typkocky=2;
  431.                druh=fix(3*rand(1))+3;
  432.             else
  433.                typkocky=1;
  434.                druh=fix(3*rand(1))+1;
  435.  
  436.             end
  437.            
  438.             for i=1:3
  439.                   paramkocky(i)=pd(druh,2*(i-1)+1)+2*pd(druh,2*(i-1)+2)*rand(1)-pd(druh,2*(i-1)+2);
  440.             end
  441. end
  442.  
  443.  
  444.  
  445. % funkcia pre riadenie robota do ciela
  446. % novysmer , 0-rovno, 1-vpravo, 2-vlavo, -1 - bez zmeny
  447. % prekazka - 0-nie je, 1-hore, 2-dole, 3-doprava, 4-dolava,
  448. % ak su zaporne hodnoty, prekazka je v cieli
  449. function [novysmer,prekazka]=chodnaciel(robot)
  450.    
  451.     % suradnice ciela robota
  452.     xciel=robot.cielX;
  453.     yciel=robot.cielY;
  454.    
  455.     % kde sa nachadza ciel od aktualnej pozicie robota, vlavo, vpravo, hore
  456.     % dole
  457.     if (xciel-robot.poziciaX)>0
  458.         idevpravo=1;
  459.     else
  460.         idevpravo=0;
  461.     end
  462.     if (xciel-robot.poziciaX)<0
  463.         idevlavo=1;
  464.     else
  465.         idevlavo=0;
  466.     end
  467.     if (yciel-robot.poziciaY)>0
  468.         idedole=1;
  469.     else
  470.         idedole=0;
  471.     end
  472.     if (yciel-robot.poziciaY)<0
  473.         idehore=1;
  474.     else
  475.         idehore=0;
  476.     end
  477.  
  478.     novysmer=-1;
  479.     prekazka=robot.prekazka;
  480.     % ak nenarazil na prekazku
  481.     if prekazka==0
  482.        
  483.         % ma ist smerom dole
  484.         if idedole==1
  485.            if robot.smer==2 && robot.snimacVpred==0
  486.                 novysmer=0;
  487.            elseif robot.smer==3 && robot.snimacPravo==0    %ide vpravo, vpravo volno, otoc dole
  488.                 novysmer=1;
  489.            elseif robot.smer==4 && robot.snimacLavo==0
  490.                 novysmer=2;
  491.            elseif robot.smer==1
  492.                 if idevpravo==1 && robot.snimacPravo==0
  493.                     novysmer=1;
  494.                 elseif idevlavo==1 && robot.snimacLavo==0
  495.                     novysmer=2;
  496.                 end
  497.            end
  498.         end
  499.    
  500.     if novysmer==-1
  501.         % ma ist smerom hore
  502.         if idehore==1
  503.            if robot.smer==1 && robot.snimacVpred==0
  504.                 novysmer=0;
  505.            elseif robot.smer==3 && robot.snimacLavo==0    %ide vpravo, vpravo volno, otoc dole
  506.                 novysmer=2;
  507.            elseif robot.smer==4 && robot.snimacPravo==0
  508.                 novysmer=1;
  509.            elseif robot.smer==2
  510.                 if idevpravo==1 && robot.snimacLavo==0
  511.                     novysmer=2;
  512.                 elseif idevlavo==1 && robot.snimacPravo==0
  513.                     novysmer=1;
  514.                 end
  515.            end            
  516.         end
  517.     end
  518.                    
  519.     if novysmer==-1
  520.         % ma ist smerom vpravo
  521.         if idevpravo==1
  522.            if robot.smer==1 && robot.snimacPravo==0
  523.                 novysmer=1;
  524.            elseif robot.smer==3 && robot.snimacVpred==0    %ide vpravo, vpravo volno, otoc dole
  525.                 novysmer=0;
  526.            elseif robot.smer==2 && robot.snimacLavo==0
  527.                 novysmer=2;
  528.            elseif robot.smer==4
  529.                 if idehore==1 && robot.snimacPravo==0
  530.                     novysmer=1;
  531.                 elseif idedole==1 && robot.snimacLavo==0
  532.                     novysmer=2;
  533.                 end
  534.            end            
  535.         end
  536.     end
  537.                
  538.     if novysmer==-1
  539.         % ma ist smerom vlavo
  540.         if idevlavo==1
  541.            if robot.smer==1 && robot.snimacLavo==0
  542.                 novysmer=2;
  543.            elseif robot.smer==4 && robot.snimacVpred==0    %ide vpravo, vpravo volno, otoc dole
  544.                 novysmer=0;
  545.            elseif robot.smer==2 && robot.snimacPravo==0
  546.                 novysmer=1;
  547.            elseif robot.smer==3
  548.                 if idehore==1 && robot.snimacLavo==0
  549.                     novysmer=2;
  550.                 elseif idedole==1 && robot.snimacPravo==0
  551.                     novysmer=1;
  552.                 end
  553.            end            
  554.         end
  555.     end
  556.    
  557.     % nie je mozny ziadny smer
  558.     if novysmer==-1
  559.         % ak nie je v cieli, tak nastav prekazku
  560.         if xciel~=robot.poziciaX
  561.             if idevpravo==1 && (xciel-robot.poziciaX)==1
  562.                 prekazka=-3;
  563.             elseif idevpravo==1
  564.                 prekazka=3;
  565.             elseif idevlavo==1 && (robot.poziciaX-xciel)==1
  566.                 prekazka=-4;                
  567.             elseif idevlavo==1
  568.                 prekazka=4;
  569.             end  
  570.         elseif yciel~=robot.poziciaY
  571.             if idehore==1 && (robot.poziciaY-yciel)==1
  572.                 prekazka=-1;
  573.             elseif idehore==1
  574.                 prekazka=1;
  575.             elseif idedole==1 && (yciel-robot.poziciaY)==1
  576.                 prekazka=-2;
  577.             elseif idedole==1
  578.                 prekazka=2;
  579.             end                      
  580.         end        
  581.     end
  582.    
  583.     % ak je prekazka, potom jej obchadzanie
  584.     else
  585.        
  586.         % prekazka vpravo
  587.         if prekazka==3 && yciel<21
  588.            if robot.smer==3 && robot.snimacVpred~=0 && robot.snimacPravo~=0 && robot.snimacLavo==0 % ak ide doprava,prekazka vpredu a vpravo, vlavo volno otoc dolava hore
  589.                 novysmer=2;
  590.            elseif robot.smer==3 && robot.snimacVpred~=0 && robot.snimacPravo==0 % ak ide doprava,prekazka vpredu , vpravo volno otoc doprava hole
  591.                 novysmer=1;                
  592.            elseif robot.smer==2 && robot.snimacLavo~=0 && robot.snimacVpred==0 % ak ide dole,prekazka vlavo, vpred volno pokracuj rovno
  593.                 novysmer=0;
  594.            elseif robot.smer==2 && robot.snimacLavo~=0 && robot.snimacVpred~=0 % ak ide dole,prekazka vlavo a rovno, otoc vpravo
  595.                 novysmer=1;                
  596.            elseif robot.smer==2 && robot.snimacLavo==0 && robot.snimacVpred==0  % ak ide dole,prekazka vlavo a rovno nieje, otoc dolava
  597.                 novysmer=2;
  598.            elseif robot.smer==2 && robot.snimacLavo==0 && robot.snimacVpred~=0 && robot.snimacPravo==0 % ak ide dole,prekazka rovno, vlavo a vpravo je volno, otoc doprava
  599.                 novysmer=1;              
  600.            elseif robot.smer==4 && robot.snimacLavo~=0 && robot.snimacVpred==0 % ak ide dolava,prekazka vlavo, vpred je volno, chod rovno
  601.                 novysmer=0;
  602.            elseif robot.smer==4 && robot.snimacLavo==0 % ak ide dolava, vlavo je volno, chod dolava
  603.                 novysmer=2;        
  604.            elseif robot.smer==1 % ak ide dole, toc dolava
  605.                 novysmer=2;
  606.            elseif robot.smer==3 && robot.snimacVpred==0 && robot.poziciaX<xciel % ak ide doprava, rovno je volno, este nie je v cieli, chod rovno a vypni obchadzanie prekazky  
  607.                 novysmer=0;
  608.                 prekazka=0;
  609.            end              
  610.            
  611.         elseif prekazka==3 && yciel>20
  612.            if robot.smer==3 && robot.snimacVpred~=0 && robot.snimacLavo~=0 && robot.snimacPravo==0 % ak ide doprava,prekazka vpredu a vlavo, vpravo volno otoc doprava dole
  613.                 novysmer=1;
  614.            elseif robot.smer==3 && robot.snimacVpred~=0 && robot.snimacLavo==0 % ak ide doprava,prekazka vpredu , vlavo volno otoc dolava hole
  615.                 novysmer=2;                
  616.            elseif robot.smer==1 && robot.snimacPravo~=0 && robot.snimacVpred==0 % ak ide hore,prekazka vpravo, vpred volno pokracuj rovno
  617.                 novysmer=0;
  618.            elseif robot.smer==1 && robot.snimacPravo~=0 && robot.snimacVpred~=0 % ak ide hore,prekazka vpravo a rovno, otoc vlavo
  619.                 novysmer=2;                
  620.            elseif robot.smer==1 && robot.snimacPravo==0 && robot.snimacVpred==0  % ak ide hore,prekazka vpravo a rovno nieje, otoc doprava
  621.                 novysmer=1;
  622.            elseif robot.smer==1 && robot.snimacPravo==0 && robot.snimacVpred~=0 && robot.snimacLavo==0 % ak ide hore,prekazka rovno, vlavo a vpravo je volno, otoc dolava
  623.                 novysmer=2;              
  624.            elseif robot.smer==4 && robot.snimacPravo~=0 && robot.snimacVpred==0 % ak ide dolava,prekazka vpravo, vpred je volno, chod rovno
  625.                 novysmer=0;
  626.            elseif robot.smer==4 && robot.snimacPravo==0 % ak ide dolava, vpravo je volno, chod doprava
  627.                 novysmer=1;        
  628.            elseif robot.smer==2 % ak ide dole, toc dolava
  629.                 novysmer=1;
  630.            elseif robot.smer==3 && robot.snimacVpred==0 && robot.poziciaX<xciel % ak ide doprava, rovno je volno, este nie je v cieli, chod rovno a vypni obchadzanie prekazky  
  631.                 novysmer=0;
  632.                 prekazka=0;
  633.            end              
  634.         end
  635.        
  636.         % prekazka vlavo
  637.         if prekazka==4 && yciel>20
  638.            if robot.smer==4 && robot.snimacVpred~=0 && robot.snimacPravo~=0 && robot.snimacLavo==0 % ak ide doprava,prekazka vpredu a vpravo, vlavo volno otoc dolava hore
  639.                 novysmer=2;
  640.            elseif robot.smer==4 && robot.snimacVpred~=0 && robot.snimacPravo==0 % ak ide doprava,prekazka vpredu , vpravo volno otoc doprava hole
  641.                 novysmer=1;                
  642.            elseif robot.smer==1 && robot.snimacLavo~=0 && robot.snimacVpred==0 % ak ide dole,prekazka vlavo, vpred volno pokracuj rovno
  643.                 novysmer=0;
  644.            elseif robot.smer==1 && robot.snimacLavo~=0 && robot.snimacVpred~=0 % ak ide dole,prekazka vlavo a rovno, otoc vpravo
  645.                 novysmer=1;                
  646.            elseif robot.smer==1 && robot.snimacLavo==0 && robot.snimacVpred==0  % ak ide dole,prekazka vlavo a rovno nieje, otoc dolava
  647.                 novysmer=2;
  648.            elseif robot.smer==1 && robot.snimacLavo==0 && robot.snimacVpred~=0 && robot.snimacPravo==0 % ak ide dole,prekazka rovno, vlavo a vpravo je volno, otoc doprava
  649.                 novysmer=1;              
  650.            elseif robot.smer==3 && robot.snimacLavo~=0 && robot.snimacVpred==0 % ak ide dolava,prekazka vlavo, vpred je volno, chod rovno
  651.                 novysmer=0;
  652.            elseif robot.smer==3 && robot.snimacLavo==0 % ak ide dolava, vlavo je volno, chod dolava
  653.                 novysmer=2;        
  654.            elseif robot.smer==2 % ak ide dole, toc dolava
  655.                 novysmer=2;
  656.            elseif robot.smer==4 && robot.snimacVpred==0 && robot.poziciaX>xciel % ak ide doprava, rovno je volno, este nie je v cieli, chod rovno a vypni obchadzanie prekazky  
  657.                 novysmer=0;
  658.                 prekazka=0;
  659.            end              
  660.            
  661.         elseif prekazka==4 && yciel<21
  662.            if robot.smer==4 && robot.snimacVpred~=0 && robot.snimacLavo~=0 && robot.snimacPravo==0 % ak ide doprava,prekazka vpredu a vlavo, vpravo volno otoc doprava dole
  663.                 novysmer=1;
  664.            elseif robot.smer==4 && robot.snimacVpred~=0 && robot.snimacLavo==0 % ak ide doprava,prekazka vpredu , vlavo volno otoc dolava hole
  665.                 novysmer=2;                
  666.            elseif robot.smer==2 && robot.snimacPravo~=0 && robot.snimacVpred==0 % ak ide hore,prekazka vpravo, vpred volno pokracuj rovno
  667.                 novysmer=0;
  668.            elseif robot.smer==2 && robot.snimacPravo~=0 && robot.snimacVpred~=0 % ak ide hore,prekazka vpravo a rovno, otoc vlavo
  669.                 novysmer=2;                
  670.            elseif robot.smer==2 && robot.snimacPravo==0 && robot.snimacVpred==0  % ak ide hore,prekazka vpravo a rovno nieje, otoc doprava
  671.                 novysmer=1;
  672.            elseif robot.smer==2 && robot.snimacPravo==0 && robot.snimacVpred~=0 && robot.snimacLavo==0 % ak ide hore,prekazka rovno, vlavo a vpravo je volno, otoc dolava
  673.                 novysmer=2;              
  674.            elseif robot.smer==3 && robot.snimacPravo~=0 && robot.snimacVpred==0 % ak ide dolava,prekazka vpravo, vpred je volno, chod rovno
  675.                 novysmer=0;
  676.            elseif robot.smer==3 && robot.snimacPravo==0 % ak ide dolava, vpravo je volno, chod doprava
  677.                 novysmer=1;        
  678.            elseif robot.smer==1 % ak ide dole, toc dolava
  679.                 novysmer=1;
  680.            elseif robot.smer==4 && robot.snimacVpred==0 && robot.poziciaX>xciel % ak ide doprava, rovno je volno, este nie je v cieli, chod rovno a vypni obchadzanie prekazky  
  681.                 novysmer=0;
  682.                 prekazka=0;
  683.            end              
  684.            
  685.         end
  686.  
  687.         % prekazka hore
  688.         if prekazka==1      %&& xciel>20
  689.            if robot.smer==1 && robot.snimacVpred~=0 && robot.snimacLavo~=0 && robot.snimacPravo==0 % ak ide doprava,prekazka vpredu a vpravo, vlavo volno otoc dolava hore
  690.                 novysmer=1;
  691.            elseif robot.smer==1 && robot.snimacVpred~=0 && robot.snimacLavo==0 % ak ide doprava,prekazka vpredu , vpravo volno otoc doprava hole
  692.                 novysmer=2;                
  693.            elseif robot.smer==4 && robot.snimacPravo~=0 && robot.snimacVpred==0 % ak ide dole,prekazka vlavo, vpred volno pokracuj rovno
  694.                 novysmer=0;
  695.            elseif robot.smer==4 && robot.snimacPravo~=0 && robot.snimacVpred~=0 % ak ide dole,prekazka vlavo a rovno, otoc vpravo
  696.                 novysmer=2;                
  697.            elseif robot.smer==4 && robot.snimacPravo==0 && robot.snimacVpred==0  % ak ide dole,prekazka vlavo a rovno nieje, otoc dolava
  698.                 novysmer=1;
  699.            elseif robot.smer==4 && robot.snimacLavo==0 && robot.snimacVpred~=0 && robot.snimacPravo==0 % ak ide dole,prekazka rovno, vlavo a vpravo je volno, otoc doprava
  700.                 novysmer=2;              
  701.            elseif robot.smer==2 && robot.snimacPravo~=0 && robot.snimacVpred==0 % ak ide dolava,prekazka vlavo, vpred je volno, chod rovno
  702.                 novysmer=0;
  703.            elseif robot.smer==2 && robot.snimacPravo==0 % ak ide dolava, vlavo je volno, chod dolava
  704.                 novysmer=1;        
  705.            elseif robot.smer==3 % ak ide dole, toc dolava
  706.                 novysmer=1;
  707.            elseif robot.smer==1 && robot.snimacVpred==0 && robot.poziciaY>yciel % ak ide doprava, rovno je volno, este nie je v cieli, chod rovno a vypni obchadzanie prekazky  
  708.                 novysmer=0;
  709.                 prekazka=0;
  710.            end              
  711.                      
  712.         end
  713.  
  714.         % prekazka dole
  715.         if prekazka==2  %&& xciel>20
  716.            if robot.smer==2 && robot.snimacVpred~=0 && robot.snimacPravo~=0 && robot.snimacLavo==0 % ak ide doprava,prekazka vpredu a vpravo, vlavo volno otoc dolava hore
  717.                 novysmer=2;
  718.            elseif robot.smer==2 && robot.snimacVpred~=0 && robot.snimacPravo==0 % ak ide doprava,prekazka vpredu , vpravo volno otoc doprava hole
  719.                 novysmer=1;                
  720.            elseif robot.smer==4 && robot.snimacLavo~=0 && robot.snimacVpred==0 % ak ide dole,prekazka vlavo, vpred volno pokracuj rovno
  721.                 novysmer=0;
  722.            elseif robot.smer==4 && robot.snimacLavo~=0 && robot.snimacVpred~=0 % ak ide dole,prekazka vlavo a rovno, otoc vpravo
  723.                 novysmer=1;                
  724.            elseif robot.smer==4 && robot.snimacLavo==0 && robot.snimacVpred==0  % ak ide dole,prekazka vlavo a rovno nieje, otoc dolava
  725.                 novysmer=2;
  726.            elseif robot.smer==4 && robot.snimacLavo==0 && robot.snimacVpred~=0 && robot.snimacPravo==0 % ak ide dole,prekazka rovno, vlavo a vpravo je volno, otoc doprava
  727.                 novysmer=1;              
  728.            elseif robot.smer==1 && robot.snimacLavo~=0 && robot.snimacVpred==0 % ak ide dolava,prekazka vlavo, vpred je volno, chod rovno
  729.                 novysmer=0;
  730.            elseif robot.smer==1 && robot.snimacLavo==0 % ak ide dolava, vlavo je volno, chod dolava
  731.                 novysmer=2;        
  732.            elseif robot.smer==3 % ak ide dole, toc dolava
  733.                 novysmer=2;
  734.            elseif robot.smer==2 && robot.snimacVpred==0 && robot.poziciaY<yciel % ak ide doprava, rovno je volno, este nie je v cieli, chod rovno a vypni obchadzanie prekazky  
  735.                 novysmer=0;
  736.                 prekazka=0;
  737.            end              
  738.                      
  739.         end        
  740.        
  741.        
  742.     end
  743.                
  744. end
  745.  
  746. % funkcia na nahodne prehladavanie
  747. % novysmer , 0-rovno, 1-vpravo, 2-vlavo, -1 - bez zmeny
  748. % kki, kko - pocitadlo
  749. % nahodai, nahodao - kedy ma byt vykonana zmena smeru
  750. function [novysmer,kko,nahodao]=nahodnehladanie(robot,kki,nahodai)
  751.         if robot.snimacPravo==2  % ak je vpravo kocka, chod doprava
  752.            novysmer=1;
  753.         elseif robot.snimacLavo==2  % ak je vlavo kocka, chod dolava
  754.            novysmer=2;
  755.         elseif robot.snimacVpred==0 || robot.snimacVpred==2 % ak je rovno kocka alebo volno chod rovno
  756.            novysmer=0;
  757.         elseif robot.snimacVpred~=0 && robot.snimacPravo==0 && robot.snimacLavo==0 % ak je rovno prekazka, vpravo aj vlavo volno, vyber si vlavo alebo vpravo
  758.            if rand<0.4
  759.                novysmer=2;
  760.            else
  761.                novysmer=1;
  762.            end
  763.         elseif robot.snimacVpred~=0 && robot.snimacPravo==0   % ak je rovno prekazka, vpravo  volno, chod vpravo
  764.            novysmer=1;
  765.         elseif robot.snimacVpred~=0 && robot.snimacLavo==0
  766.            novysmer=2;
  767.         else
  768.             novysmer=-1;
  769.         end
  770.        
  771.         % nahodna zmena smeru
  772.         if kki==nahodai
  773.            % ak ide rovno, zmen smer
  774.            if novysmer==0 && robot.snimacVpred~=2
  775.                % ak je vlavo volno, chod vlavo
  776.                if robot.snimacLavo==0
  777.                   novysmer=2;
  778.                elseif robot.snimacPravo==0  % ak je vpravo volno, chod vpravo
  779.                   novysmer=1;
  780.                end
  781.            end
  782.            % nahodne generovanie casu na zmenu smeru
  783.            nahodai=fix(robot.param2*rand+robot.param1);
  784.            kko=0;
  785.         else
  786.             kko=kki+1;
  787.         end
  788.         nahodao=nahodai;    
  789. end
  790.  
  791. % funkcia na nastavenie smeru cesty, podla toho ktorym smerom je otoceny
  792. % vypocita poziciu robota a ktorym smerom sa ma otocit
  793. function [posX,posY,otoc]=nastavsmercesty(robot)
  794.     stareX=robot.poziciaX;
  795.     stareY=robot.poziciaY;
  796.     posX=robot.poziciaX;
  797.     posY=robot.poziciaY;
  798.     otoc=0;
  799.     % nastavenie smeru cesty
  800.     if robot.pohyb==1
  801.         if robot.otocenie==0 && robot.smer==1 % hore
  802.             posX=stareX;
  803.             posY=stareY-1;
  804.         elseif robot.otocenie==0 && robot.smer==2 % dole
  805.             posX=stareX;
  806.             posY=stareY+1;
  807.         elseif robot.otocenie==0 && robot.smer==3 % vpravo
  808.             posX=stareX+1;
  809.             posY=stareY;
  810.         elseif robot.otocenie==0 && robot.smer==4 % vlavo
  811.             posX=stareX-1;
  812.             posY=stareY;
  813.            
  814.         elseif robot.otocenie==1 && robot.smer==1 % otocenie vpravo
  815.             posX=stareX+1;
  816.             posY=stareY;
  817.             otoc=3;
  818.          elseif robot.otocenie==1 && robot.smer==3 % otocenie dole
  819.             posX=stareX;
  820.             posY=stareY+1;
  821.             otoc=2;
  822.          elseif robot.otocenie==1 && robot.smer==2 % otocenie vlavo
  823.             posX=stareX-1;
  824.             posY=stareY;
  825.             otoc=4;
  826.          elseif robot.otocenie==1 && robot.smer==4 % otocenie hore
  827.             posX=stareX;
  828.             posY=stareY-1;
  829.             otoc=1;
  830.            
  831.         elseif robot.otocenie==2 && robot.smer==1 % otocenie vlavo
  832.             posX=stareX-1;
  833.             posY=stareY;
  834.             otoc=4;
  835.          elseif robot.otocenie==2 && robot.smer==3 % otocenie hore
  836.             posX=stareX;
  837.             posY=stareY-1;
  838.             otoc=1;
  839.          elseif robot.otocenie==2 && robot.smer==2 % otocenie vpravo
  840.             posX=stareX+1;
  841.             posY=stareY;
  842.             otoc=3;
  843.          elseif robot.otocenie==2 && robot.smer==4 % otocenie dole
  844.             posX=stareX;
  845.             posY=stareY+1;
  846.             otoc=2;
  847.         end
  848.     end
  849.     if posY<1
  850.         posY=1;
  851.     end
  852.     if posX<1
  853.         posX=1;
  854.     end    
  855.     if posX>40
  856.         posX=40;
  857.     end    
  858.     if posY>40
  859.         posY=40;
  860.     end
  861.  
  862. end
  863.  
  864. % nastavenie stavu snimacov, podla pixelov v mape
  865. function [vs,ps,hs]=nastavsnimace(robot,horepole,dolepole,vpravopole,vlavopole)
  866.    
  867.     % smer hore
  868.     if robot.smer==1
  869.         if horepole==2
  870.             hs=1;
  871.         elseif horepole==5 || horepole==6
  872.             hs=2;  
  873.         elseif horepole==3 || horepole==4
  874.             hs=3;              
  875.         else
  876.             hs=0;            
  877.         end
  878.         if vlavopole==2
  879.             vs=1;
  880.         elseif vlavopole==5 || vlavopole==6
  881.             vs=2;
  882.         elseif vlavopole==3 || vlavopole==4
  883.             vs=3;                                                          
  884.         else
  885.             vs=0;                      
  886.         end
  887.         if vpravopole==2
  888.             ps=1;
  889.         elseif vpravopole==5 || vpravopole==6
  890.             ps=2;                                                
  891.         elseif vpravopole==3 || vpravopole==4
  892.             ps=3;                                                          
  893.         else
  894.             ps=0;                      
  895.         end
  896.        
  897.     end
  898.     % smer dole
  899.     if robot.smer==2
  900.         if dolepole==2
  901.             hs=1;
  902.         elseif dolepole==5 || dolepole==6
  903.             hs=2;
  904.         elseif dolepole==3 || dolepole==4
  905.             hs=3;                                                          
  906.         else
  907.             hs=0;            
  908.         end
  909.         if vpravopole==2
  910.             vs=1;
  911.         elseif vpravopole==5 || vpravopole==6
  912.             vs=2;    
  913.         elseif vpravopole==3 || vpravopole==4
  914.             vs=3;                                              
  915.         else
  916.             vs=0;                      
  917.         end
  918.         if vlavopole==2
  919.             ps=1;
  920.         elseif vlavopole==5 || vlavopole==6
  921.             ps=2;
  922.         elseif vlavopole==3 || vlavopole==4
  923.             ps=3;                                              
  924.         else
  925.             ps=0;                      
  926.         end
  927.        
  928.     end
  929.      % smer vpravo
  930.     if robot.smer==3
  931.         if vpravopole==2
  932.             hs=1;
  933.         elseif vpravopole==5 || vpravopole==6
  934.             hs=2;
  935.         elseif vpravopole==3 || vpravopole==4
  936.             hs=3;                                  
  937.         else
  938.             hs=0;            
  939.         end
  940.         if horepole==2
  941.             vs=1;
  942.         elseif horepole==5 || horepole==6
  943.             vs=2;
  944.         elseif horepole==3 || horepole==4
  945.             vs=3;                                                          
  946.         else
  947.             vs=0;                      
  948.         end
  949.         if dolepole==2
  950.             ps=1;
  951.         elseif dolepole==5 || dolepole==6
  952.             ps=2;
  953.         elseif dolepole==3 || dolepole==4
  954.             ps=3;                                              
  955.         else
  956.             ps=0;                      
  957.         end
  958.        
  959.     end
  960.      % smer vlavo
  961.     if robot.smer==4
  962.         if vlavopole==2
  963.             hs=1;
  964.         elseif vlavopole==5 || vlavopole==6
  965.             hs=2;
  966.         elseif vlavopole==3 || vlavopole==4
  967.             hs=3;                      
  968.         else
  969.             hs=0;            
  970.         end
  971.         if dolepole==2
  972.             vs=1;
  973.         elseif dolepole==5 || dolepole==6
  974.             vs=2;  
  975.         elseif dolepole==3 || dolepole==4
  976.             vs=3;                                  
  977.         else
  978.             vs=0;                      
  979.         end
  980.         if horepole==2
  981.             ps=1;
  982.         elseif horepole==5 || horepole==6
  983.             ps=2;
  984.         elseif horepole==3 || horepole==4
  985.             ps=3;                                              
  986.         else
  987.             ps=0;                      
  988.         end
  989.        
  990.     end
  991.  
  992. end
  993.  
  994. % funkcia na prehladanie okolia robota radarom
  995. % vrati pozicie kociek [Y X] - [riadok stlpec] v mape
  996. function [novapozkocky]=najdikocku(robot,celamapa,dosahsenzora)
  997.     % def. rozsahu senzora
  998.     rmin=robot.poziciaY-dosahsenzora+1;
  999.     rmax=robot.poziciaY+dosahsenzora+1;
  1000.     smin=robot.poziciaX-dosahsenzora+1;
  1001.     smax=robot.poziciaX+dosahsenzora+1;
  1002.    
  1003.     % ohranicenie mapy
  1004.     if rmin<2
  1005.         rmin=2;
  1006.     end
  1007.     if smin<1
  1008.         smin=1;
  1009.     end
  1010.     if rmax>41
  1011.         rmax=41;
  1012.     end
  1013.     if smax>41
  1014.         smax=41;
  1015.     end
  1016.    
  1017.     % ohranicenie prekazkov, radar cez prekaz nevidi
  1018.     ss=robot.poziciaX+1;
  1019.     for rr=rmin:robot.poziciaY+1,
  1020.         if celamapa(rr,ss)==2
  1021.             rmin=rr;
  1022.             break;
  1023.         end
  1024.     end
  1025.     rr=robot.poziciaY+1;
  1026.     for ss=smin:robot.poziciaX+1,
  1027.         if celamapa(rr,ss)==2
  1028.             smin=ss;
  1029.             break;
  1030.         end
  1031.     end
  1032.     ss=robot.poziciaX+1;
  1033.     for rr=robot.poziciaY+1:rmax,
  1034.         if celamapa(rr,ss)==2
  1035.             rmax=rr;
  1036.             break;
  1037.         end
  1038.     end
  1039.     rr=robot.poziciaY+1;
  1040.     for ss=robot.poziciaX+1:smax,
  1041.         if celamapa(rr,ss)==2
  1042.             smax=ss;
  1043.             break;
  1044.         end
  1045.     end    
  1046.     novapozkocky=[];
  1047.    
  1048.     % hladanie kocky v ohranicenom priestore
  1049.     for rr=rmin:rmax,
  1050.         for ss=smin:smax,
  1051.             if celamapa(rr,ss)==5
  1052.                 novapozkocky=[novapozkocky;rr-1 ss-1 1];
  1053.             elseif celamapa(rr,ss)==6
  1054.                 novapozkocky=[novapozkocky;rr-1 ss-1 2];
  1055.             end
  1056.         end
  1057.     end
  1058.            
  1059. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement