第463章 算法(2 / 2)

“不一樣,我寫的當然要能正常對局,咱們的電腦雖然很落後,比你的遊戲機還是要強很多的,計算能力不是一個水平!你等著瞧好了!”曾凡很自信的說道。

“看把你能的,到時候你的程序要是能贏我,我請咱們全班吃雪人!”王偉對自己的象棋水平還是很有把握的。

“知道你家有錢,我不和你打賭,到時候就知道了!”曾凡才不上當,一根雪人雪糕一塊錢,全班六十多人,他全身上下的錢加起來都不夠。

“不是打賭,是我個人自願!”

王偉說著突然站了起來,踩桌子站到講桌上,轉過身大聲說道:“大家聽好了,周四上機課,我和曾凡寫的象棋程序對戰,如果我輸了,自願請全班同學吃雪人!決不食言!”

“王偉!快下來,這是晚自習,別影響大家學習!”班長楊菲菲趕緊站起來維持秩序。

下麵的同學們看熱鬧不嫌事大,更何況還有便宜可占,紛紛的跟著起哄,尤其是後幾排的男同學,劉誌新嚷的最歡,被班長狠狠瞪了一眼,才不得不住口。

“我說完了,大家知道有這事兒就行了!”王偉踩著桌子又回到自己的位置。

曾凡很無語,這下子全班都知道了,想低調都做不到了,也怪自己,和這個出名的大嘴巴抬什麼杠呢!

“曾凡,我等著看你的大作了!”王偉拍了拍他的肩膀,笑嗬嗬的說道,明顯是不相信他能寫出這樣的程序。

有了王偉的打岔,曾凡不得不認真起來,反正作業都寫完了,曾凡拿過那本程序書認真翻看起來,在裏麵找相似類型的算法代碼作參考。

一般類似的棋類軟件算法都是枚舉法,將每一個棋子可能的走法逐一計算,通過特殊的程序算法進行判斷,選擇出最有利的走法。

程序想要獲勝,僅算一步肯定不夠,還要計算對手可能的走法,再逐一計算,然後再根據對方的某一步計算己方最佳的應對方法,以此類推。

每往深層多計算一步,總的計算數量就是雙方所有可能走法相乘一次,計算機運算能力再強大,也禁不起這種海量枚舉的消耗,一般的人類棋手,水平再差也能算兩三步,但凡有點水平算四五步,七八步都很常見,雖然沒有程序機械嚴謹,很容易有疏漏,可是人類的經驗計算機不能比,能彌補偶爾疏漏造成的錯誤。

好的算法就是減少程序的枚舉步驟,通過嚴密設計提前排除大量無效步驟,並且高效判斷某一步的價值,以少量的計算獲取最深的計算步驟,盡量減少己方的失誤。

曾凡左手托下巴,右手無意識的翻書,腦子裏思索著程序的結構設計,怎樣枚舉計算,怎樣判斷每一步的價值,已經有了初步的想法,迫切的想要去寫出來驗證一下。

看了看表,才剛剛八點多,到十點熄燈還有將近兩個小時,差不多夠用了。

“高小娜,我出去一下!”曾凡的位置在裏麵,後排的桌子又靠的很緊,想要出去,需要外麵的人先出去,或者盡量往前靠,他才能過去。

出了教室,曾凡直奔機房,開門進去先開燈,然後直奔剛才他用的那台電腦。

這次他帶著軟盤過來,寫完了備份到軟盤上麵,下次隨便哪台電腦都能繼續編寫了。