600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 期末课程设计之java实现五子棋的人机和人人对战

期末课程设计之java实现五子棋的人机和人人对战

时间:2022-08-11 00:01:40

相关推荐

期末课程设计之java实现五子棋的人机和人人对战

五子棋人机实现和人人实现(java)

一.前言

这学期期末课程设计选题选的是《用java完成五子棋人机以及人人对战》。其中人人主要是java的网络编程,运用UDP,socket来传输数据,每当有一方下棋,那么就会发送下棋一方的位置信息,这部分主要是调试比较麻烦,需要用两台电脑(一台电脑也可以实现);人机的主要难点在于电脑怎么下棋,其实这是程序最精华的部分,你的人机要够聪明。我这里写的人机比较简单,大概是入门偏上的等级,其中主要的思路是在别的博客上习得。下面贴出代码:主要看中级人机部分代码吧,这里说下大概思路,首先需要遍历棋盘上每个位置(这里我的棋盘大小是19*19),对于每一个位置都需要给他计分,具体计分方法是这样的,在当前位置向八个方向遍历,如:向上遍历有3个白棋,那么这个位置的分数很高,因为活四(百度搜索一下五子棋基本术语以及含义)就是必赢了,以此类推可以算出每个位置的分数,当然这个分数有两种,一种是相对于白棋,另一种是相对于黑棋,最后要比较这两种分数,最后找到棋盘上分数最高的点,电脑就下在这了。如果我的代码晦涩难懂,那么我强力推荐一篇csdn博客点击打开链接,写的非常好。

二.代码链接:

链接:/BlossomingL/gobang,麻烦大家git的时候给我小星星,感谢!

运行截图如下:

1.开始界面

2.人机界面

3.人人界面

三.总结

每次写课程设计总有一种应付感,实现了基本的功能之后就不再去完善它,这个程序有较多的bug,比如人机对战中下在边缘位置的时候会出现很蠢的bug,还有人人对战的时候,当中途一方退出另一方并不知道。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。