相信很多「牛人」都被一些宅男學弟問過這個問題:學長,我作為乙個初學程式的菜鳥,要怎麼樣才能提交自己的程式設計水平,變成牛人呢?
說實話,這個問題深奧地我有點回答不上來,無外乎只能告訴他「多讀」「多寫」「搞好數學和演算法,練內功」「用好設計模式」「看《程式設計之美》」等等之類的空話套話。後來剃刀阿遠給出了乙個答案讓我深受啟迪,他說:就一句話——多寫給人用的**。
這句話第一次聽上去也許覺得有點裝逼,實則不然,我非常認同這個觀點。
這個問題相對就更非常具體了,我個人認為,有實用價值同時又讓人覺得親切有趣的程式就可以了。
例如,dota是一款80後程式猿耳熟能詳的遊戲,尤其是還沒走出大學校門的挨踢宅男的最愛。毫無疑問,如果我們以dota作為突破點,只要idea有意思、跟dota緊密相關,就算是菜鳥寫的程式也能在學校bbs裡被大家爭相傳閱。
11對戰平台是最近流行的dota平台,與其他對戰平台不同的是,11有海量的統計資料。對於每乙個玩家,都有最詳細的統計,細到包括他所擅長的英雄、歷史上用哪個英雄做了哪些事、平均某個英雄出場殺敵數、甚至細到該玩家歷史上一共拿了多少個double kill都有記錄。
本文僅僅示例如何統計mvp而已,相對於11對戰平台的資料寶庫來說,可謂是「弱水三千,只取一瓢」。思路是這樣的: 抓取大量(如十萬個)活躍玩家的歷史場次資訊,對所有場次的mvp英雄進行統計。十萬個活躍玩家涉及的總dota場次是千萬級的,統計樣本已經很充足。
有了基本思路,我們再理乙個詳盡的流程:
2.分析已儲存到本地的資料,作出記錄。(涉及的新手知識:簡單的正規表示式、處理json)
3.製作直觀統計結果(涉及的新手知識:linq和lambda表示式、檔案的讀寫)
這麼乙個簡單的程式,對初學.net的新手來講,可以帶著興趣鍛鍊到如此多的基本功知識點,比看什麼枯燥的***入門到精通書籍有趣多了! o(∩_∩)o
第一步 用fiddler抓包獲得使用者統計頁面的url
通過抓包我們知道:
u後面是使用者的id
2.需要登入才能檢視統計結果。我們程式獲取頁面時,可以通過設定cookie來模擬登入。
第二步 使用webclient構造請求
cookie部分設定為fiddler裡所抓取到的cookie值。如果抓取成功就儲存到本地檔案,檔名以使用者id命名。
//////
抓取某個玩家的資料o
///
///玩家平台的id
private
void getfiles(
int i)
else
//累計場次
battlecount += item.lost + item.win + item.offline;}}
}第四步 製作直觀的統計結果
軟體的使用者怎麼檢視程式運營的結果呢?一般無外乎就是文字檔案、網頁、。我們先寫個簡單的文字檔案吧!。(如果寫個漂亮的html5頁面,相信效果會非常好哦)注意在輸出結果前,先把dictionary排序一下,可以使用到簡單的lambda表示式。
///分析結果
///
private
void getresult()
:\n", item.key, item.value);
}sw.write(sb.tostring());
sw.write(
"\n\n**計場次:
" + battlecount);
sw.close();
}
運算結果是這樣的:
在已統計的數十萬場比賽中,最容易獲得mvp的英雄前十名依次為:神靈武士、屠夫、嗜血狂魔、賞金獵人、幽鬼、影魔、山嶺巨人、召喚師、敵法師、先知。當然,如果統計範圍再大一點(把抓取資料的程式跑一整天即可),涉及場次達到千萬級,結果會更加準確。
怎麼樣,非常簡單吧?嘿嘿,之前說過了,本文只做拋磚引玉,為那些初學.net找不到練手專案的人增加一些思路。您可以根據本文很輕鬆地製作出「最容易打錢的英雄」「殺人數最多的英雄」「最容易推塔的英雄」「最坑爹的英雄」等等等等。。。
關於dota輔助程式
其實,當您熟知了本文所提及的這些「基礎知識」以後,您會發現11對戰平台的統計資料可以做非常多的事。
關於dota輔助程式是我一位同事提出的,可以是各種對戰平台(不限於11)的外掛程式形式。可以做的事情有:
1.根據海量統計資料,在某場dota比賽開始後,根據場上10個英雄,告訴玩家哪個英雄最容易獲得mvp。
2.根據海量統計資料和場上已選的9個英雄,告訴玩家應該選哪個英雄更容易打出好的成績。
3.根據海量統計資料告訴玩家此局應該怎麼出裝備、怎麼公升級能甚至整體策略。
4.根據海量統計資料(尤其是天梯的資料),告訴玩家在cm模式(或其他組隊模式)應該怎麼選英雄搭配(還可以結合對方選的英雄實時運算新策略)。
磚已經夠多了,玉就靠你們了。 o(∩_∩)o
我相信我會逆襲的!細數程式猿初嚐創業的苦逼經歷
渾渾噩噩地過完了這2個月,也是時候坐下來靜靜地想一想自己這一段時間的付出與收穫了。從剛開始的有想法,有激情,到現在的力不從心。是我變了,還是這個世界變得太快?兩個月前,我和公司的幾個哥們一起聊到生日時送蛋糕的事,都說離得近還可以,離得遠可就是沒辦法了。有的女朋友在外地,生日想玩個浪漫,可是有時又抽不...
《瘋狂的程式猿》 什麼是真正的程式猿?
什麼是真正的程式猿?瘋狂的程式猿 書裡說的 1.真正的程式猿是,值得尊敬的。程式猿的雙手是魔術師的雙手。他們把枯燥無味的 變成了豐富多彩的軟體。2.真正的程式猿是。當你房子,車子,妹子都有了,你還在coding 那你是真的程式猿 3.真正的程式猿是,當編碼能給你帶來無窮的激情的時候 4.真正的程式猿...
屌絲程式設計師的逆襲之路
你只看到我的蓬頭垢面,卻沒看到我凌晨兩三點噼里啪啦地敲 你可以嘲笑我的矮矬窮,我會證明屌絲也是可以逆襲的,你看不起現在的我,未來的我也讓你高攀不起,夢想,注定是孤獨的旅行,路上少不了質疑和嘲笑,但,那又怎樣?你有你的選擇,我有我的人生,我不是富二代官二代星二代紅二代,我是土生土長的農二代,不是我想努...