Matlab uicontrol功能修改

时间:2014-06-04 09:37:42

标签: matlab user-interface

我正在开展一个项目,其中一些部分涉及TicTacToe游戏。我有tictactoe.m文件,并希望更改代码,以便播放器的选择将由函数的输出应用,例如,RESULT参数,而不是用户自己点击屏幕。我的代码的uicontrol部分如下。如何通过另一个函数的输出而不是按钮样式来控制游戏?

function B = buttons
% Initialize push buttons and text.
clf
shg
B = zeros(3,3);
M = magic(3); % strategical approach and equivalent game for TicTacToe game.
for k = 1:9
[i,j] = find(k == M);
B(i,j) = uicontrol('style','pushbutton','units','normal', ...
  'fontsize',16,'callback','tictactoe(''green'')');
end
uicontrol('style','text','units','normal','pos',[0.30 0.82 0.40 0.10], ...
'fontsize',20,'background',get(gcf,'color'),'tag','toptext');

uicontrol('style','text','units','normal','pos',[0.20 0.72 0.60 0.10], ...
'fontsize',10,'background',get(gcf,'color'),'tag','toptext','string', ...
['Pick single digit numbers.  Each digit can be chosen only once. ' ...
'Generate a total of 15 using exactly three digits.'])

uicontrol('style','pushbutton','units','normal','string','Game', ...
'fontsize',12,'position',[.23 .12 .15 .07], ...
'callback','tictactoe(''game'')');

uicontrol('style','pushbutton','units','normal','string','Start', ...
'fontsize',12,'position',[.43 .12 .15 .07], ...
'callback','tictactoe(''start'')');

uicontrol('style','pushbutton','units','normal','string','Exit', ...
'fontsize',12,'position',[.63 .12 .15 .07], ...
'callback','tictactoe(''exit'')');

1 个答案:

答案 0 :(得分:0)

所有按钮正在执行的是执行回调命令。在这种情况下按钮开始'正在打电话

tictactoe('start')

所以你可以通过调用相同的函数获得另一个函数来启动它,你将不得不看看函数' tictactoe'因为它需要另外两个输入,按钮uicontrol会自动添加额外的输入,对象处理等。