HTML5/javascript五子棋的核心關鍵點是:
1、弄清楚有多少種贏法;
2、怎麼判斷是否已經贏了;
3、電腦下棋演算法。
這裡巧妙地運用javascript陣列存儲贏法, 判斷是否贏了,
通過權重比較, 計算出電腦該下棋的位置。
這個五子棋不僅僅是javascript, 也體現了html5的一些新特性, 比如canvas繪圖, 嚴格的來講是比較難的, 但是對於學習javascript的夥伴來說, 這又是一個非常好的鍛煉專案, javascript重在思維與邏輯, 而對於邏輯的鍛煉, 個人認為沒有比遊戲更為合適的了, 所以對於javascript學習沒有自信, 不知道怎麼學的, 不妨用這個項目來練練手!
對於web前端的學習有不懂的, 或者不知道學習路線, 不知道學習方法, 不知道該如何扎實學習能找到工作的朋友, 可以來我們頭條前端群570946165, 全套系統學習資料已上傳群檔!
javascript代碼詳解從效果圖可以看到, 棋盤的橫豎可以放的位置為15*15, 通過canvas畫棋盤:
知道格子數後, 我們先看五子棋有多少種贏法:
根據贏法總數定義分別保存電腦和人贏法的陣列:
然後就是人開始下棋:
oneStep() 方法為落子, 要在棋盤上畫一個棋子:
接著看電腦怎麼下棋,
根據相應的權重, 計算出電腦應該落子的位置。
悔棋以及撤銷悔棋用javascript怎麼實現?要提的是, 這裡暫時只能悔一步棋。 悔棋功能主要關鍵點是:1、銷毀剛剛下的棋子;2、將之前不可能贏的狀態還原;看下具體的代碼:
minusStep()為銷毀棋子的方法, 我們看下是怎麼銷毀的。
首先通過clearRect()擦掉該圓,然後再重新畫該圓周圍的格子,注意相應的位置,這裡花了些時間折騰。
悔棋過後,再撤銷,相當於還原悔棋之前的狀態。代碼比較簡單:
至此html5/javascript五子棋基本實現,剩下的佈局一些補充在此不一一寫出
對於web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何扎實能找到工作的朋友,可以來我們頭條前端群570946165,全套系統學習資料已上傳群檔!
需要更多前端學習資料/視頻/學習方法,請關注後,私信“學習”首先通過clearRect()擦掉該圓,然後再重新畫該圓周圍的格子,注意相應的位置,這裡花了些時間折騰。
悔棋過後,再撤銷,相當於還原悔棋之前的狀態。代碼比較簡單:
至此html5/javascript五子棋基本實現,剩下的佈局一些補充在此不一一寫出
對於web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何扎實能找到工作的朋友,可以來我們頭條前端群570946165,全套系統學習資料已上傳群檔!
需要更多前端學習資料/視頻/學習方法,請關注後,私信“學習”