function out = gwi( arg, arg2) % gwi: a grid world interface global alpha beta gamma delta lambda global gt ge gs bt be bs at ae as stop global fx fy fm ff if( nargin < 1) gwi( 'new'); return; end % call backs switch( arg) case 'new' gw( 'new'); %gamma = 1; beta = 5; alpha = 0.5; ff = figure(4); % focus f3 = get(3,'Position'); set(ff,'Position',[f3(1),f3(2)-fm(3)-fm(4)-200,400,200],'Name','Command'); clf; % buttons uicontrol(ff,'Style','pushbutton','Position',[20,140,90,40],... 'Callback','gwi new','String','New','FontSize',24); uicontrol(ff,'Style','pushbutton','Position',[120,140,90,40],... 'Callback','gw try','String','Try','FontSize',24); uicontrol(ff,'Style','pushbutton','Position',[220,140,90,40],... 'Callback','gw 10 try','String','Repeat','FontSize',24); uicontrol(ff,'Style','pushbutton','Position',[320,140,90,40],... 'Callback','gw stop','String','Stop','FontSize',24); % gamma gt = uicontrol(ff,'Style','text','Position',[20,90,100,40],... 'String','Gamma','FontSize',24); ge = uicontrol(ff,'Style','edit','Position',[120,90,80,40],... 'Callback','gwi gedit',... 'String',num2str(gamma),'FontSize',24); gs = uicontrol(ff,'Style','slider','Position',[200,90,200,40],... 'Callback','gwi gslide',... 'Min',0,'Max',1,'SliderStep',[0.01,0.1],'Value',gamma); % beta bt = uicontrol(ff,'Style','text','Position',[20,50,100,40],... 'String','Beta','FontSize',24); be = uicontrol(ff,'Style','edit','Position',[120,50,80,40],... 'Callback','gwi bedit',... 'String',num2str(beta),'FontSize',24); bs = uicontrol(ff,'Style','slider','Position',[200,50,200,40],... 'Callback','gwi bslide',... 'Min',0,'Max',10,'SliderStep',[0.01,0.1],'Value',beta); % alpha at = uicontrol(ff,'Style','text','Position',[20,10,100,40],... 'String','Alpha','FontSize',24); ae = uicontrol(ff,'Style','edit','Position',[120,10,80,40],... 'Callback','gwi aedit',... 'String',num2str(alpha),'FontSize',24); as = uicontrol(ff,'Style','slider','Position',[200,10,200,40],... 'Callback','gwi aslide',... 'Min',0,'Max',1,'SliderStep',[0.01,0.1],'Value',alpha); % gamma case 'gedit' g = str2num( get(gcbo,'string')); if isempty(g), break; end gamma = max( 0, min( 1, g)) set(gs,'Value',gamma); case 'gslide' gamma = get(gcbo,'Value'); set(ge,'string',num2str(gamma)); gamma % beta case 'bedit' b = str2num( get(gcbo,'string')); if isempty(b), break; end beta = max( 0, min( 10, b)) set(bs,'Value',beta); case 'bslide' beta = get(gcbo,'Value'); set(be,'string',num2str(beta)); beta % alpha case 'aedit' a = str2num( get(gcbo,'string')); if isempty(a), break; end alpha = max( 0, min( 1, a)) set(as,'Value',alpha); case 'aslide' alpha = get(gcbo,'Value'); set(ae,'string',num2str(alpha)); alpha end