2015華爲軟賽(一)——環境

點滴記錄總結,一天一打雞血。

2015年5月華爲組織了一次軟件精英挑戰賽,賽題是德州撲克手牌AI~

環境及測試說明:http://pan.baidu.com/s/1dD2dL0P

  1. 重點在哪?
    麻雀雖小五臟俱全,儘管手牌AI程序沒有那麼大代碼量,但是涉及的知識點是比較豐富的。
    最基本的要求是得連上服務器以及能用官方語言作出策略,就好比我現在要和人打麻將,首先我要坐上桌(連接服務器),然後我需要用他人聽得懂的語言或出牌或碰或胡(策略), 葫蘆娃們(後續pk中吧主爲方便大家調試給的採取極端策略的對手程序)就是實例。使用socket通信也有些技巧,由於賽制原因,需要綁定客戶端socket,還要實現端口複用呢,一旦time out,所有心血付之一炬。。。
    上面是所有想打牌的人必須要做的事情,接下來是龍生九子,有瘋狂raise狗、all-in狂魔、猥瑣fold鳥……比較好策略是基於完整正確的手牌辨識程序以及完善的對手模型的基礎上實現的,想走的更遠?那得讓代碼邏輯更加嚴密、策略更加科學,還有一個看似僞的真命題,不僅得會玩德州,還需要有自己的風格(一套策略)~~
    重點到底在哪裏?哪裏不會在哪裏~~~本來就是一個學習的機會,重點在於態度,在於投入。鄙人險過初賽,在區域複賽前模擬賽結果很糟糕(這中間也沒改過代碼,不夠認真+_+),於是沒抱任何希望、也沒投入多少時間就去參賽了。到了複賽,臨時換了一套策略,花了一天時間改了改,在提交截止前半小時才完成,測試結果都來不及驗證便草草收場。。。結果下來,雖然沒進4強,但是有點意外,If only……………………………呵呵,不要小看了自己哦,認真踏實才是做技術的出路丫!

  2. 需要幹啥?
    需要乾的事情很多,所以組一個 團隊很有必要(也是我滴傷~)。代碼編寫部分的需求就不說了,其實這個花的時間真的不值一提,真正花時間的是分析對手策略,制定對應策略。光分析對手策略就得看上好幾百場的比賽哦(我貌似沒超過10場,身處實驗室,時間有限^v^),論算法的重要性。。。此外,一個灰常嚴肅的需求是,找自己的bug,墨菲定律,你的bug一定會在關鍵時刻來問候你。醉了,後來發現自己程序死在這裏了額!

  3. 如何展開?
    好的程序需要有良好的魯棒性、擴展性、可實現性、可讀性。在手牌AI的設計中,比較關注前三者(代碼量相對較少,即使是一個團隊,一個人編寫足以,所以可讀性似乎在這不太重要)。
    魯棒俗稱健壯,這一實現需要團隊交流與大量測試,你的邏輯夠嚴謹嗎?實踐出真知吶!
    擴展性,每個系統都是不斷完善的過程,良好的擴展性能讓你如虎添翼,最後飛到深圳決賽。
    可實現性,這一部分存在於策略的設計,不要異想天開,天馬行空的想象也要有所根據才行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章