[討論] gui的function間傳值問題

作者: emmadodolin (多多)   2014-05-10 23:46:33
這次想做一個五子棋的遊戲
現在是想藉由傳值算餘數的方式去看要放黑棋或白棋
但在function傳值間遇到問題
以下是主要code
function axes1_CreateFcn(hObject, eventdata, handles)
X=0;
handles.curplayer = X;%把X=0存進handles.curplayer代表黑色先下
guidata(hObject, handles);%更新handles的內容
board_image=imread('C:\Users\user\Documents\MATLAB\gui\board.jpg');%得到棋盤圖的路徑
board_handle=image(board_image)%貼上棋盤圖
hold on;%不確定需不需要此行code
set(board_handle,'ButtonDownFcn',{@board_ButtonDownFcn,5});%將棋盤部分設滑鼠事件
function board_ButtonDownFcn(hObject, eventdata, handles)
A=handles.curplayer;%%%%%%%%試圖取得handles.curplayer但失敗
curplayer=mod(A,2);%將handles.curplayer/2取餘數
[x,y] = ginput(1)%得到滑鼠事件按的座標值
a=[0:pi/50:2*pi]; %角度 0-2pi
x1=cos(a)*16+x; %圓的x方程式
y1=sin(a)*16+y; %圓的y方程式
if curplayer==0 %如果餘數為0則為黑色
plot(x1,y1,'-') %畫出圓形線條
fill(x1,y1,'k') %塗滿黑色
elseif curplayer==1 %如果餘數為1則為白色
plot(x1,y1,'-') %畫出圓形線條
fill(x1,y1,'w') %塗滿白色
end
handles.curplayer=handles.curplayer+1; %將handles.curplayer+1即可換另一個顏色
guidata(hObject,handles); %更新handles
hold on;
執行時Error顯示Attempt to reference field of non-structure array.
問題出在A=handles.curplayer;
請問是哪裡出錯,要如何修改呢?查了很多資料也爬了很多文還是無解ˊ_ˋ
謝謝大家

Links booklink

Contact Us: admin [ a t ] ucptt.com