看板 mud_sanc 關於我們 聯絡資訊
假設底下為顯示範圍 ┌──────────────────────────┐ │1234567890123456789012345678901234567890123456789012│ │2 │ │3 │ │4 │ │5 │ │6 │ │7 │ │8 │ └──────────────────────────┘ 2005年時寫過類似的東西,不過當時功力還不足,玩家有寫出 過辨識程式。 現在的話,要寫出程式無法辨識的數字圖基本上是辦得到的。 基本流程簡述如下.. 一、r=random(數字範圍) 二、進行每個數字的顯示大小及字樣定義 a.先決定大小 b.再跑出字樣 c.儲存起來 三、再進行每個數字之間的「起始顯示位置設定」,以顯示圖 範圍為例,假設要顯示六位數字,那基本上最大寬度公式 max w = 2x2 + 7 x 6 + (7-1) = 52 四、加入雜訊 五、秀圖 這支程式並不難寫,出來的數字圖類似底下... ┌──────────────────────────┐ │1234567890123456789012345678901234567890123456789012│ │2 * **** * * ** * ****** * *** ** ** │ │3 * * ****** * * * * │ │4 *** ** **** ** * * * * ** *** │ │5 * * * ** **** ****** * * │ │6 *** ** *** *** * * * ** * ** * │ │7 * * * * * * * * * *│ │8 * * ***** * ****** │ └──────────────────────────┘ 答案:284739 上面的意思就是.. 一、數字的大小至少就有三種樣式(佔5、6、7行) 二、數字的起始顯示位置(從左上算起)最多有 3x5 種,不過依 數字的大小最少則是 5 種(平移區間)。 三、數字的字樣是隨機的,也就是殘缺or腫瘤顯示,例如4那個   字,左上就出現多餘的 *,而中段就缺少一個 *。 四、數字之間是可以交疊的,例如 7 跟 3。 五、數字圖攙了一定數量的「雜訊」,例如你會看到空白處有出   現 * 號。 像這種圖要破解就有一定難度了。若要做為防機程式,則有幾個 原則必須掌握.. 一、我們允許程式跑出「真的無法辨識的圖」。   然後請玩家等待一段時間等圖更新再試一次即可。這時的重   點就放在「這類圖的出現機率真的很低」。 二、我們允許玩家輸入錯誤的重試,但是重試必須限制時間及次   數。   然後失敗次數超過就要等待一段時間等圖更新再試一次。   比方容錯三次,這樣真正手動的玩家才能有機會在三次內猜   到答案。 三、程式無法百分之百防止掛機   這是因為不可能玩家每做什麼就跑出該判斷(會被玩家罵死)   ,所以這時應該把程式擺在「重點處」,例如說 recall 點   、補品補充店、公會adv/train、以及像是不應該被經常使   用但偶爾必須用到的 en 指令、go 指令(行走)、login 時.. 然後設定好週期觸發時間即可,例如玩家走動時只要判斷時   間到了就自動出現數字圖,然後玩家未回答出正確答案前就   不允許其走動、以及做其它相關的指令(en、recall等)。 然後允許玩家即使看到了數字圖也可以不必馬上回答,有空   時再回答即可(比方它正在戰鬥中這樣)。 也就是說不需要要求 100% 的防堵率,反而才能讓防機效率   達到最好。 以上心得跟大家分享。 Laechan@Sanc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.81.23.70 laechan:轉錄至看板 mud 10/07 10:58
justinj :圖我看不出來是那幾個數字... 10/07 11:13
justinj :基本上只要看的出來就可以寫出來..如果看不出來當然 10/07 11:15
justinj :寫不出來... 10/07 11:15
justinj :現在炸彈客的那個就看不大出來了(有時要cp出來加個空 10/07 11:17
justinj :格來平移..但那是只加個一兩次而已...太多就沒法度了 10/07 11:18
justinj :要嘛就用色盲辨別的那種來用<顏色>..不然根本看不懂 10/07 11:20
justinj :ps.第1個數字看不大出來了...2 or 3..其它完全無法辨 10/07 11:41
justinj :識 10/07 11:41
AresMars :我覺得比起很多免空的 這個已經算好辨識了= = 10/07 11:52
看不出來你可以猜。 猜n次沒猜中,就請你等一分鐘等圖更新再猜。 猜錯沒關係,不會有任何懲罰,只是你無法 go、recall、heart、etc.. 這個程式如果要做為防機用的基本原則就是「允許玩家猜錯or猜不到」。 而且他頂多 1 小時跑出來一次,以及登入時、到公會 train 技能時、 adv lv 時....才會出現,不會對手動玩家造成什麼太大困擾 ※ 編輯: laechan 來自: 115.81.23.70 (10/07 12:35)
hlead :來個答對送10點學點也不錯.. 10/07 14:54
justinj :現在最怕的是...猜那個猜了十幾次都猜不中... 10/07 16:39
justinj :我只有第一個看的懂..也就是說剩200000種可能..sob 10/07 16:40
justinj :..這個還是有答案的情況下去看...到時出一個要怎麼辦 10/07 16:42
justinj :.....amem 10/07 16:42
justinj :這個還是認定它是寫"正體"的情況下..如果再變成斜體 10/07 16:44
基本上,你看不懂,你可以貼出來問別人看看。 又或者還有一個方法,你把圖貼到記事本,然後把那些雜訊 先消掉,把殘缺的部份試著補一下,那或許你就能懂了。 這是稍微處理完之後的結果 ****** * * ****** ****** * * * ****** * * * ****** ******* * * * * ****** * * * ******* ****** * ****** ******* * * * * * * * * * * ******* * ****** 2   8   4   7 3    9 實際上出現數字圖時是上面的型式(不會有邊框),然後某些 地方會殘缺或長瘤,外加一些雜訊。 ※ 編輯: laechan 來自: 115.81.23.70 (10/07 18:19)
justinj :現在看的懂了...這是在認定它是正體字的情況下.. 10/07 18:18
justinj :第二個方法是要知道那些是才能做..也就是說第2方法no 10/07 18:19
hmml :要交疊的話,至少顏色要有所不同... 10/08 02:32
laechan :看不懂沒關係,棄答即可 10/08 02:55