longchao9527 2014-03-16 02:51
浏览 2215

小弟不才,求教给位java大神,五子棋输赢判断问题。。

判断西北斜方向的时候可以准确判断,但是反过来北西方向就不行了
public boolean isWon(int posX,int posY){
int sameCount=0;
int startX=0;
int startY=0;
int endX=BOARD_SIZE-1;
int endY=endX;
int tmp=0;

    tmp=posX-4;
    startX=tmp<0?0:tmp;

    tmp=posY-4;
    startY=tmp<0?0:tmp;

    tmp=posX+4;
    endX=tmp>BOARD_SIZE-1?BOARD_SIZE-1:tmp;

    tmp=posY+4;
    endY=tmp>BOARD_SIZE-1?BOARD_SIZE-1:tmp;

    //纵向扫描黑子
    for(int i=startY;i<endY;i++){
        if(board[posX][i]=="●"&&board[posX][i+1]=="●"){
            sameCount++;
        }else if(sameCount>=4){
            System.out.println("黑子赢!");
            sameCount=0;
            return true;
        }else if (board[posX][i]=="●"&&board[posX][i+1]!="●") {
            sameCount=0;
        }
    }

    //横向扫描黑子
            for(int i=startX;i<endX;i++){
                if(board[i][posY]=="●"&&board[i+1][posY]=="●"){
                    sameCount++;
                }else if(sameCount>=4){
                    System.out.println("黑子赢!");
                    sameCount=0;
                    return true;
                }else if (board[i][posY]=="●"&&board[i+1][posY]!="●") {
                    sameCount=0;
                }
            }

    //斜方向扫描黑子

            for(int i=startX,j=startY;i<endX&&j<endY;i++,j++){
                if(board[i][j]=="●"&&board[i+1][j+1]=="●"){
                    sameCount++;
                }else if(sameCount>=4){
                    System.out.println("黑子赢!");
                    sameCount=0;
                    return true;
                }else if (board[i][j]=="●"&&board[i+1][j+1]!="●") {
                    sameCount=0;
                }
            }
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 易语言把MYSQL数据库中的数据添加至组合框
    • ¥20 求数据集和代码#有偿答复
    • ¥15 关于下拉菜单选项关联的问题
    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况