zoukankan      html  css  js  c++  java
  • 五子棋输赢判定算法

    public void whoWin(int row, int col, char ch)  /* row是传入的棋子行地址,col为列地址,ch代表棋子,"黑"或“白” */
    {  
      int i;
      int j;
      int k;
      char[] line = new char[getColOfBoard()];    /* 存储斜行数据 */
      int chNum = 0;                    /* 若chNum >= 5,则赢 */
    
      // 行判断输赢
      for(i = 0; i < getColOfBoard(); i++) {
        if(cheboard[row][i] == ch) {
          chNum++;
          if(chNum >= 5) {
            System.out.println(ch + "获胜!游戏结束!");
            return;
          }
        } else {
          chNum = 0;
        }
       }
    
      // 列判断输赢
      chNum = 0;
      for(i = 0; i < getRowOfBoard(); i++) {
    
        if(cheboard[i][col] == ch) {
    
          chNum++;
          if(chNum >= 5) {
            System.out.println(ch + "获胜!游戏结束!");
            return;
          }
         } else {
          chNum = 0;
        }
      }
    
      // 右下斜行判断输赢
      chNum = 0;    
      k = 0;
      for(i = 0; i < getColOfBoard(); i++) {  /* 将line数组清零 */
        line[i] = '0';
      }
      i = row + 1;
      j = col + 1;
      while(i > 0 && j > 0) {
        i--;
        j--;
      }
      while(i < getRowOfBoard() && j < getColOfBoard()) {
        line[k++] = cheboard[i][j];
        i++;
        j++;
      }
      for(i = 0; i < line.length; i++) {
        if(line[i] == ch) {
          chNum++;
          if(chNum >= 5) {
            System.out.println(ch + "获胜!游戏结束!");
            return;
          }
        } else {
          chNum = 0;
        }
      }
    
      // 右上斜行判断
      chNum = 0;    
      k = 0;
      for(i = 0; i < getColOfBoard(); i++) {  /* 将line数组清零 */
        line[i] = '0';
      }
      i =  row;
      j = col;
      while(i < getRowOfBoard() - 1 && j > 0) {
        i++;
        j--;
      }
      while(i >= 0 && j < getColOfBoard()) {
        line[k++] = cheboard[i][j];
        i--;
        j++;
      }
      for(i = 0; i < line.length; i++) {
        if(line[i] == ch) {
          chNum++;
          if(chNum >= 5) {
            System.out.println(ch + "获胜!游戏结束!");
            return;
          }
        } else {
          chNum = 0;
        }
      }
    }
  • 相关阅读:
    5.常见类和API
    4.异常
    3.面向对象
    2.控制语句和数组
    1.初始java 数据类型 运算符
    C#设计模式——桥接模式
    C#设计模式——适配器模式
    C#设计模式——原型模式
    C#设计模式——建造者模式
    C#设计模式——抽象工厂模式
  • 原文地址:https://www.cnblogs.com/soldierback/p/9281328.html
Copyright © 2011-2022 走看看