動手寫個五子棋小遊戲【附源碼】 一、概述 二、不足和改進方案 三、總結

五子棋作爲大家休閒娛樂的方式,相信大家都玩過,並且不少人應該精於此道。作爲程序員的我們是否考慮過它是如何實現的?人機如何實現?在線又是如何進行匹配和對戰的呢?

我耗時幾天,終於完成初版的五子棋小遊戲,主要包含下面幾個小功能:

  • 登錄註冊
  • 人機對戰
  • 在線對戰
  • 積分模塊

在線體驗地址:五子棋大作戰

開源代碼地址:我犟不過你:gobang

遊戲詳細介紹請參考鏈接:https://juejin.cn/post/7084581591938252808

一、概述

本篇文章重點講解此五子棋的玩法、運用的技術實現,以及當前遊戲的不足和改進方案

目前作爲一個初版,能夠完成我所預期的功能,且項目整體代碼量較小,複雜度較低,比較適合想要學習相關代碼技術的同學們參考,同時也能幫我提出更好的改進方案。歡迎大家賞玩,參考,點評。

需要說明的一點,本人的前端很一般,目前界面較爲簡陋,只爲實現基本功能,需要以後逐步的優化。

二、不足和改進方案

  • 人機對戰

不足:目前人機對戰,對於複雜多變的棋局,仍然會出現分數計算不準確的情況,導致電腦落子出錯。尤其是棋子被堵截、涉及邊界,在添加空位的情況,沒能覆蓋所有的可能。

人爲歸納比較費力,畢竟種類繁多。

改進:後續的改進方案主要以AI爲主,讓電腦學會自學習。每一次失敗,都自動記錄失敗位置,並持久化,經過長期訓練,應該能覆蓋絕大多數的可能性。

  • 在線對戰

不足:目前是定時任務輪詢匹配玩家,小併發項目沒有問題,併發量大的話可能會存在分配效率低下的問題。且如果分佈式部署的情況下,還要針對定時任務做冪等處理。

改進:後期會將底層修改爲Netty。

  • 頁面優化

不足:作爲後端程序員,目前頁面寫的簡單,且代碼格式較爲混亂,沒有很多好的用到VUE的精髓,如路由等,導致頁面不流暢,待重構。

改進: 重構代碼風格,按功能劃分組件、頁面。增加遊戲細節,豐富色彩。

三、總結

整個遊戲,利用平時的業餘時間,大概用了10天左右,效率不算高,中間也遇到問題,卡了很久。尤其是在人機模塊的設計耗費了很多時間,中間也推翻了幾次方案,磕磕絆絆的總算完成了,問題還有很多,後續有時間會去優化。

總結幾點自身的不足:

  • 數學基礎不好
  • 算法一般
  • 前端編碼能力有待提升
  • 遇到問題,要學會跳出循環,整理思路後再分析
  • 年齡問題,思考確實不透徹

其實最重要的一點在於動手之前需要先思考,無論做什麼開發,還是要先做設計,驗證可行性,以免反覆

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