Java基础算法——五子棋判定结果的几种思路

本文探讨了Java实现五子棋项目的输赢判断方法,包括遍历棋盘的行和列、检查上下棋子数量及判断每行每列五子相连。虽然遍历方式占用内存,但通过优化思路可以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    五子棋作为很多初学者的第一个比较综合性的小项目,需要大家根据需求对二维数组进行查询、存放棋子等操作。这一步相信大家都没有什么问题,然而没有输赢的五子棋就没有意义,所以五子棋还有判断结果这一重要的步骤。大部分老师都没有对这一步进行要求,但很多同学却很感兴趣并且在网上进行了查询,相信也能够利用网上的代码玩五子棋的游戏了。接下来我想提供自己判断五子棋输赢的几种思路

    一、遍历棋盘的每一行每一列

      这大概是最蠢的一种的方式了,你不仅需要遍历每一行每一列,还需要遍历每一列。因为每下一步棋都需要进行结果判断,势必会很占内存,所以不推荐这种方式

    二、判断当前所下棋子的上下棋子个数加起来是否为4
    网上现有的结果判断基本数都是这一种,通过判断该棋子横竖斜每一条线相邻的棋子是否为4

    三、判断棋子所在每一行每一列是否有五子相连

    这个是我自己写的,因为想起来更简单  

        /**
	 * 
	 *@param x 棋子所在行数-1
	 * @param y 棋子所在列数-1
	 * @param bool bool为true则说明落子为黑子,否则落子为白子
	 * @return 返回true则表明对应的子五子相连,返回false表明没有五子相连的情况
	 */
	public boolean result(int x,int y,boolean bool){
		String str=(bool)?"■":"○";
		//棋子所在行和列是否有五子相连的情况
		for(int i=0;i<16;i++){
			if((board[x][i].equals(str)&&board[x][i+1].equals(str)&&board[x][i+2].equals(str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值