當前位置:
首頁 > 最新 > 冠軍Pony:我有特別的代碼調試技巧

冠軍Pony:我有特別的代碼調試技巧

因為遊戲主體需要在網頁上直接運行的,不能像以往常規的用調試工具或print等調試方法。而寫代碼出錯是難免的,現在給初次接觸遊戲的同學分享一些個人的人調試技巧。

接下來看這樣的一個小案例,

在關卡:

https://codecombat.163.com/play/level/kithgard-brawl

中有一個同學,在運行以下代碼時遇到了死循環的問題,不知道怎麼解。

接下來我們嘗試用「say」來舉例該問題的調試方法。

(在這裡我們不談他的代碼的好壞,僅針對他的思路調試出問題)

用法一、看程序是否運行到某處

上面有3個while,那到底是在哪生了死循環呢?我們先在最下面的while里加一句,hero.say("已經運行到這裡了!")。結果發現,英雄一直並未說出這句話。說明,下面的內容,程序根本沒有運行到。

接下來我們在第二個while里寫了一句hero.say("已經運行到這裡了!")。這裡我們發現,英雄一直在反覆說這句話。說明這裡出現了問題!!!

用法二、看程序中某些你關心的變數內容

既然我們知道了,是第2個while產生的死循環。那麼,很明顯,我們應該關心indx的值的變化。

我們只需要hero.say(indx),就很明顯的發現indx被卡在了固定的一個數字,並沒有按我們的想的往下+1。

說明邏輯出現了問題,這時我們再看,發現indx+ = 1寫在了enemyhealth

以上就是用say來調試一個小BUG的的案例,感覺say還是挺管用的。有時候,我們不希望英雄說話(因為會停下來),這時用pet也是一樣的。

三、一些有趣而實用的另類方法

say除了以上用法,我本人還會用來做一些查詢,比如看看敵人的type等。最有趣的,我會用來分析英雄的傷害,舉例一個我的自己的案例。

運行結果如下,這樣就能很清楚的看出每個技能的傷害差別實際有多少了。所以我當時得出的結論是,這個大塊頭的普攻傷害比有的技能還高!!!!我還不如多普攻一些,在某些條件下才放技能好了。

GIF

以下就是特約作者Pony給大家帶來的分享,希望對初學者有幫助。!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 極客戰記 的精彩文章:

用極客戰記做一款可以分享的小遊戲!
爬蟲基礎:使用Requests庫獲取天氣預報

TAG:極客戰記 |