function out = digin( arg, arg2) % digin: dig interface global ns na rew1 rew2 global alpha beta gamma delta lambda global rt re rs gt ge gs bt be bs at ae as stop global fm ff if( nargin < 1) dig; digin( 'new'); return; end % call backs switch( arg) case 'new' dig( 'new'); % gamma = 1; beta = 5; alpha = 0.5; ff = figure(3); % focus f2 = get(2,'Position'); % below fig 2 set(ff,'Position',[f2(1),f2(2)-fm(3)-fm(4)-240,400,240],'Name','Command'); clf; % buttons uicontrol(ff,'Style','pushbutton','Position',[20,180,90,40],... 'Callback','digin new','String','New','FontSize',24); uicontrol(ff,'Style','pushbutton','Position',[120,180,90,40],... 'Callback','dig try','String','Try','FontSize',24); uicontrol(ff,'Style','pushbutton','Position',[220,180,90,40],... 'Callback','dig 10 try','String','Repeat','FontSize',24); uicontrol(ff,'Style','pushbutton','Position',[320,180,90,40],... 'Callback','dig stop','String','Stop','FontSize',24); % rew2 rt = uicontrol(ff,'Style','text','Position',[20,130,100,40],... 'String','Bonus','FontSize',24); re = uicontrol(ff,'Style','edit','Position',[120,130,80,40],... 'Callback','digin redit',... 'String',num2str(rew2),'FontSize',24); rs = uicontrol(ff,'Style','slider','Position',[200, 130,200,40],... 'Callback','digin rslide',... 'Min',0,'Max',5*ns,'SliderStep',[0.05,0.2],'Value',rew2); % 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','digin gedit',... 'String',num2str(gamma),'FontSize',24); gs = uicontrol(ff,'Style','slider','Position',[200,90,200,40],... 'Callback','digin 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','digin bedit',... 'String',num2str(beta),'FontSize',24); bs = uicontrol(ff,'Style','slider','Position',[200,50,200,40],... 'Callback','digin 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','digin aedit',... 'String',num2str(alpha),'FontSize',24); as = uicontrol(ff,'Style','slider','Position',[200,10,200,40],... 'Callback','digin aslide',... 'Min',0,'Max',1,'SliderStep',[0.01,0.1],'Value',alpha); % rew2 case 'redit' g = str2num( get(gcbo,'string')); if isempty(g), break; end rew2 = max( 0, min( 5*ns, g)) dig( 'world'); set(rs,'Value',rew2); case 'rslide' rew2 = get(gcbo,'Value') dig( 'world'); set(re,'string',num2str(rew2)); % 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)); case 'grefresh' set(ge,'string',num2str(gamma)); set(gs,'Value',gamma); drawnow; % 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)); % 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)); end