close

今天研究了一整天的三角函數,雖然年輕時學過,但離開學校那麼多年,早就已經忘光光了。

現在我有點擔心,要是以後我女兒不會寫的作業跑來問我,我應該怎麼辦?

"那個...... 爸爸現在在忙,妳去問媽媽好嗎?"應該是最標準的答案!

為什麼我會莫名其妙地開始重學三角函數呢?

因為我想搞懂一段不知是哪位高手寫的程式碼,它背後的邏輯,這個搜尋方式實在是寫得太艱深了!

function search //尋找目標
    //取窗口原點坐標
    GetActiveWindowXY(WinX0, WinY0)
    x1=1024 //螢幕解析度(預設1024 x 768)
    y1=768 //螢幕解析度(預設1024 x 768)
    c1=250 //尋怪範圍(請勿修改)
    
    //其他資訊
    pi = 4 * Atn(1)    //定義圓周率
    
    do //循環1起始點
        MouseMove(WinX0+x1/2, WinY0+y1/2) //游標移至螢幕中央
        Wait(10)
        GetMouseID(InitCursorID) //最初游標樣式
        do //循環2起始點
            for dist = 0 to c1 step 30 //圓型範圍搜索開始
                steps = Int(2 * pi * dist / 30) //以圓周為基準 每30 pixel為一步
                dAngle = 2 * pi / (steps + 1) //計算每移動30 pixel後的角度變化
                angle = 0 //起始角度
                for i = 0 to steps
                    dx = dist * sin(angle)
                    dy = -dist * cos(angle)
                    mx = WinX0 + x1/2 + dx
                    my = WinY0 + y1/2 + dy
                    MouseMove(mx, my)
                    wait(20)
                    GetMouseID(cursorID)
                    if cursorID <> InitCursorID then //如果游標樣式改變
                        monster_found = true //發現目標
                        exit do //脫離循環2
                    end if
                    angle = angle + dAngle
                next
            next
            exit do //脫離循環2
        loop //循環2終點
        exit do //脫離循環1
    loop //循環1終點
end function

基本上,這段程式的功能是讓你的滑鼠以圓型方式,從螢幕的正中央開始,一圈一圈地往外搜尋某個目標。還有一些更複雜的搜尋方式,像是不規則型、橢圓型等等,這就完全看你的數學學得有多精。

到了此時,我才明白國中、高中、大學為什麼要教我們數學!書到用時方恨少吶!

總之,最近我找到一個可以寫腳本讓電腦自己動的程式叫Seraph,就忍不住玩了起來。

雖然我不是電腦專業,在大學也只修過一兩門寫程式的課,但一些簡單的東西還是寫得出來的。

事實上,我記得從前新聞上有報什麼點點點大戰,就是比哪一國的人點滑鼠點得最多。其實那還蠻簡單的,只要一小段程式碼,就可以讓滑鼠自己狂點一整天,比人手快上N倍。

如果你有在玩任何網路遊戲或網頁遊戲,包括facebook上的開心農場,你都可以利用這個腳本程式去幫你自動種菜偷菜之類的。

於是呢,我就找了好幾個網頁遊戲來作實驗(好啦,我的玩法比較怪...),寫出來後真是超有成就感的!

不過我比較想學那種讀取記憶體內存的編碼方式,那才是真正的高竿!

話說,我六月要考分析師欸...

想學的東西太多,時間永遠都不夠吶~

arrow
arrow
    全站熱搜

    悠然 發表在 痞客邦 留言(1) 人氣()