Ich weiß auch nicht, zu welcher Sprache die Syntax genau gehört, aber intuitiv habe ich das mal beispielhaft umgeschrieben. In der Hoffnung, dass das der gültigen Syntax entsprechen wird. Hoffe, dass Blockbildung mit '{' + '}' funktioniert.
Aufgabe: ich müsste etwas einbauen das wenn right = 1; ist für eine gewisse zeit left nicht ausgeführt werden kann. (und umgekehrt - für geradeaus, soll das auch gelten)
Code:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% S1 = Sensor mitte vorne
% S2 = Sensor links vorne
% S3 = Sensor links hinten
% S4 = Sensor rechts hinten
% S5 = Sensor rechts vorne
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [forward, right, left, backward] = Shieldbot(S1, S2, S3, S4, S5)
%% init
forward = 0;
right = 0;
left = 0;
backward = 0;
c1 = 0;
c2 = 100;
%% "intelligence"
if (c1==0 && (S2 || S1 && S2))
{right = 1; c1 = c2;}
elseif (c1==0 && (S5 || S1 && S5))
{left = 1; c1 = c2;}
elseif(c1==0)
forward = 1;
end
if (c1>0) c1 = c1-1;
end
Lesezeichen