python大作业五子棋人人对战_五子棋总结(人人对战)

五子棋小结(人人对战)五子棋是我学习Java后写的第二个小游戏,初步实现了五子棋的人人对战。下面简单介绍一下我的五子棋及其我在编写过程中遇到的一些问题,但愿大家可以避免我走的一些弯路我的五子棋经历了如下四个步骤:一、将五子棋的界面做出来( 棋盘 棋子)二、对棋子进行一些设置 ( 如黑白分明 棋子下在棋盘的交点上 已下棋子的位置不能再下等)三、判断输赢四、悔棋和重新开局五子棋的界面主要是...
摘要由CSDN通过智能技术生成

五子棋小结(人人对战)

五子棋是我学习Java后写的第二个小游戏,初步实现了五子棋的人人对战。

下面简单介绍一下我的五子棋及其我在编写过程中遇到的一些问题,但愿大家可以避免我走的一些弯路

我的五子棋经历了如下四个步骤:

一、将五子棋的界面做出来(  棋盘  棋子)

二、对棋子进行一些设置 ( 如黑白分明  棋子下在棋盘的交点上    已下棋子的位置不能再下等)

三、判断输赢

四、悔棋和重新开局

五子棋的界面

主要是重写父类中的paint方法,及其重绘  由于之前做过画板的重绘,这步没花费太多时间

对棋子进行基本的设置

就开始接触最最基本的算法了,也是我第一次写算法,在磕磕碰碰中实现了,主要是根据获取鼠标点击的坐标,判断距离最近的棋盘交点,把棋子放在最近的交点上

判断输赢

从这步开始就有点纠结了,总是自己很清楚算法是怎样的,就是无法用Java语言准确的表达出来

横向纵向判断还好,因为坐标的i j值只有一个变化,用一个for循环就可以解决了

到斜着的两个方向,i j值则变成了同增同减  或者  此消彼长的关系,我以前写的for循环里面只有一个变量,由于对for语句了解的局限性,

耗费了很多功夫,最后只能一个for循环设置两个变量,这么一试,问题解决了,松了一口气

判断输赢时还要注意数组越界的问题

四个方向计算连在一起的最大棋子数时最好分别计数,避免互相干扰

//横向判断

public int XWin(int i,int j){

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值