[爆卦]密碼程式碼是什麼?優點缺點精華區懶人包

為什麼這篇密碼程式碼鄉民發文收入到精華區:因為在密碼程式碼這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者popojjdd (Metamorphosis)看板MATLAB標題[討論] 設計好的程式碼在G...

密碼程式碼 在 經濟一週 EDigest|投資、理財、經濟、商業資訊平台 Instagram 的最佳解答

2020-04-28 06:27:41

【#經一速遞】 自細與父母鬥智 成逆向工程專家 港女揚威海外 FB、IG高層都Folllow 又一名香港年輕人跟「國際線」connect了!Jane Manchun Wong(黃文津)對香港人來說,是一個陌生的名字,不過活躍於Twitter的她,是「App界」的網紅,連Facebook、Inst...


各位版大好:)

我是MATLAB菜鳥QQ

正在利用MATLAB設計 猜密碼的遊戲 並使用GUI呈現

遊戲就是以前綜藝節目上出現過的終極密碼

電腦會隨機產生一個介於0~99的密碼 隨著玩家猜測 範圍會逐漸縮小


目前遇到的問題是在GUI裡執行的時候會給錯提示範圍

好比:密碼是85 範圍提示卻是密碼在90~96間

但原始程式碼在一般command window執行時卻是正常的

不知道是我忽略了什麼嗎?

像是把原始程式碼改到gui按鈕時的遺漏之類的

若有其他資訊需要提供 我會再補上


麻煩版大指點 感謝


以下是附上該按鈕的程式碼

--

function Password_Callback(hObject, eventdata, handles)
% hObject handle to Password (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

n=1;
%n為協助while迴圈進行的變數

B=0;
%下限

C=99;
%上限

pick=fix(rand*100);

while 1

pause;
prompt = { '請輸入您的密碼?'};
AddOpts.Resize = 'on';
AddOpts.WindowStyle = 'normal';
title = '密碼';
lineno = 1;
answer = inputdlg(prompt, title, lineno);
A=cell2mat(answer);
%A為玩家當次輸入的密碼

if isempty(A)
h = msgbox(['請重新輸入密碼!']) ;
elseif A==pick
h = msgbox(['恭喜您成功猜中密碼!']) ;
%h為協助跳出視窗的變數
break
elseif (A<B | A>C)
h = msgbox(['請重新輸入密碼!']) ;
else
if n==10
h = msgbox(['可惜!終極密碼是', num2str(pick),',您已失敗10次,遊戲
結束!'])
break
else
if A<pick
B=A;
h = msgbox(['你已經失敗',num2str(n),'次,終極密碼介於
',num2str(B),'到',num2str(C),...
'間。請加油!按下OK後,按任意鍵繼續遊戲。']);
n=n+1;
elseif A>pick
C=A;
h = msgbox(['你已經失敗',num2str(n),'次,終極密碼介於
',num2str(B),'到',num2str(C),...
'間。請加油!按下OK後,按任意鍵繼續遊戲。']);
n=n+1;
end
end
end
end
guidata(hObject, handles);

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.229.30.95
aada:錯誤訊息是? 12/17 08:18

沒有出現錯誤訊息 但是 執行結果是異常的

如同上例---> 終極密碼是85 出現的範圍提示卻是密碼在90~96間

所以我覺得可能是語法誤用


目前嘗試Debug 覺得問題可能是在於 cell2mat

原本是希望能把cell轉換成數值資料以比較大小

不過這個語法似乎是把cell轉成matrix

跟我想要的一個純數字的比較還有段距離

現在試了網路上的人設計的 cell2num 可是卻出現NAN


不知道有無方法解決~


感謝回應
※ 編輯: popojjdd 來自: 140.112.4.183 (12/17 12:58)

除錯與爬文下順利將問題解決了

參考了12362篇文大大的做法

a=str2num(char(a));
% 將cell轉成數字,非數字的都會變空集合

透過這樣的方式 把互動式輸入的cell資料轉換成數字

如此一來就可以與純量進行比較


哈 再次見證跟感謝ptt的神奇
※ 編輯: popojjdd 來自: 36.229.28.180 (12/17 23:06)

你可能也想看看

搜尋相關網站