期末課程設計之java實現五子棋的人機和人人對戰

五子棋人機實現和人人實現(java)

 

一.前言

這學期期末課程設計選題選的是《用java完成五子棋人機以及人人對戰》。其中人人主要是java的網絡編程,運用UDP,socket來傳輸數據,每當有一方下棋,那麼就會發送下棋一方的位置信息,這部分主要是調試比較麻煩,需要用兩臺電腦(一臺電腦也可以實現);人機的主要難點在於電腦怎麼下棋,其實這是程序最精華的部分,你的人機要夠聰明。我這裏寫的人機比較簡單,大概是入門偏上的等級,其中主要的思路是在別的博客上習得。下面貼出代碼:主要看中級人機部分代碼吧,這裏說下大概思路,首先需要遍歷棋盤上每個位置(這裏我的棋盤大小是19*19),對於每一個位置都需要給他計分,具體計分方法是這樣的,在當前位置向八個方向遍歷,如:向上遍歷有3個白棋,那麼這個位置的分數很高,因爲活四(百度搜索一下五子棋基本術語以及含義)就是必贏了,以此類推可以算出每個位置的分數,當然這個分數有兩種,一種是相對於白棋,另一種是相對於黑棋,最後要比較這兩種分數,最後找到棋盤上分數最高的點,電腦就下在這了。如果我的代碼晦澀難懂,那麼我強力推薦一篇csdn博客點擊打開鏈接,寫的非常好。

 

二.代碼鏈接:

鏈接: https://pan.baidu.com/s/15MeBgO03U1IYS1yv0mtYvQ 提取碼: fo25

運行截圖如下:

  1.開始界面

 

              

                

          

 

2.人機界面

 

 

3.人人界面

 

 

三.總結

每次寫課程設計總有一種應付感,實現了基本的功能之後就不再去完善它,這個程序有較多的bug,比如人機對戰中下在邊緣位置的時候會出現很蠢的bug,還有人人對戰的時候,當中途一方退出另一方並不知道。

 

 

發佈了35 篇原創文章 · 獲贊 55 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章