首页>代码>java五子棋算法>/五子棋算法/CheckWhoWin.java
package lyj.chess.main;
/**
 * 五子棋判断输赢类
 * @author LYJ
 *
 */
public class CheckWhoWin {
	
	private static int HOW_MANY=5;

	/**
	 * 判断棋子横线是否五连珠
	 * @param row 横坐标
	 * @param column 纵坐标
	 * @param chessType
	 * @return
	 */
	public boolean  acrossLine(int [][]chess,int row,int column,int chessType){
		int count=0; 
		int origalX=row,origalY=column;
		while(column>=0&&chess[column][row]==chessType){
			count++;
			column--;
			if(count==HOW_MANY){
				return true;
			}
		}
		column=origalY+1;
		while(column<chess[0].length&&chess[column][row]==chessType){
			count++;
			column++;
			if(count==HOW_MANY){
				return true;
			}
			
		}
		row=origalX;column=origalY;
		return false;
	}
	/**
	 * 判断纵线是否五连珠
	 * @param chess
	 * @param row
	 * @param column
	 * @param chessType
	 * @return
	 */
     public  boolean  upRightLine(int [][]chess,int row,int column,int chessType){
		int count=0; 
		//往上
		int origalX=row,origalY=column;
		while(row>=0&&chess[column][row]==chessType){
			count++;
			row--;
			if(count==HOW_MANY){
				return true;
			}
		}
		row=origalX+1;
		
		//往下
		while(row<chess.length&&chess[column][row]==chessType){
			count++;
			row++;
			if(count==HOW_MANY){
				return true;
			}
			
		}
		row=origalX;column=origalY;
		return false;
	}
     /**
      * 判断左斜
      * @param chess
      * @param row
      * @param column
      * @param chessType
      * @return
      */
     public boolean leftXie(int [][]chess,int row,int column,int chessType){
    	 int count=0;
    	 int origalX=row,origalY=column;
    	 while(row>=0&&column<=chess[0].length-1&&chess[column][row]==chessType){
    		 count++;
    		 column++;
 			 row--;
 			if(count==HOW_MANY){
 				return true;
 			}
 		}
    	 row=origalX+1;
    	 column=origalY-1;
    	 
    	 while(row<=chess.length-1&&column>=0&&chess[column][row]==chessType){
    		 count++;
  			row++;
  			column--;
  			if(count==HOW_MANY){
  				return true;
  			}
  		}
 		row=origalX;column=origalY;
    	 return false;
     }
     /**
      * 判断右斜
      * @param chess
      * @param row
      * @param column
      * @param chessType
      * @return
      */
     public boolean rightXie(int [][]chess,int row,int column,int chessType){
    	 int count=0;
    	 int origalX=row,origalY=column;
    	 while(row<=chess.length-1&&column<chess[0].length-1&&chess[column][row]==chessType){
 			row++;
 			column++;
 			count++;
 			if(count==HOW_MANY){
 				return true;
 			}
 		}
    	 row=origalX-1;
    	 column=origalY-1;
    	 while(row>=0&&column>=0&&chess[column][row]==chessType){
  			row--;
  			column--;
  			count++;
  			if(count==HOW_MANY){
  				return true;
  			}
  		}
 		row=origalX;column=origalY;
    	 return false;
     }
   
   
   
	
}
最近下载更多
大薯片子  LV1 2023年12月4日
渡鸦uuuaa  LV1 2023年11月9日
zzxxkk  LV2 2022年11月26日
李宜昌  LV5 2022年7月7日
牛牛哒的挂神巧  LV1 2022年7月5日
zcwudi  LV2 2022年6月24日
姜广坤  LV14 2022年5月20日
我是来拉屎的  LV1 2022年5月8日
luisfabiano  LV2 2022年4月2日
Zeorwyc  LV8 2021年3月20日
最近浏览更多
interface  LV22 6月29日
cchhcc  LV2 3月5日
ClydeSon  LV5 2023年12月27日
周俊杰  LV1 2023年12月25日
46562026 2023年12月22日
暂无贡献等级
2386136609  LV1 2023年12月17日
暂无贡献等级
大薯片子  LV1 2023年12月4日
vwvxia  LV3 2023年11月24日
渡鸦uuuaa  LV1 2023年11月9日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友