Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.00 KB | None | 0 0
  1. //тут метод для хода компьютера с двумя опциями - рандомом и умным компьютером, который просчитывает оптимальность клетки
  2.     private static void compTurn() {
  3.       int   row = -1;
  4.      int    col = -1;
  5.          if (silly_mode) {
  6.         do {
  7.             row = ran.nextInt(size);
  8.             col = ran.nextInt(size);
  9.         } while (!valid(row, col));
  10.     } else {
  11.              smartMove(row, col);
  12.     }
  13.  while (!valid(row, col)) ;
  14.         System.out.println("Компьютер сделал ход " + (row + 1) + (col + 1));
  15.         map[row][col] = o;
  16.  
  17.     }
  18. //тут цикл проходится по клеткам и ищет свободные. потом проверяет, какая из свободных клеток более релевантна (релевантность проверяется в отдельном методе)
  19.     public static void smartMove(int x, int y) {
  20.          x = 0;
  21.          y = 0;
  22.         int temporal=0;
  23.         int bestChoice = 0;
  24.         for(int i = 0; i<size; i++) {
  25.             for(int j = 0; j<size; j++) {
  26.                 if(map[i][j]==empty)
  27.                      temporal = checkAndChose(i, j);
  28.                 if(temporal>bestChoice) {
  29.                     bestChoice=temporal;
  30.                     x=i;
  31.                     y=j;
  32.                 }
  33.             }
  34.         }
  35.         //if(bestChoice>0) {
  36.           //  map[x][y]==o;
  37.        // }
  38.  
  39.     }
  40. //тут компьюетр вроде бы таким образом проходится по клеткам и выясняет, где уже он до этого поставил свой символ
  41.     private static int checkAndChose(int x, int y) {
  42.         int count = 0;
  43.         for(int i = x-1; i<size; i++) {
  44.             for(int j = y-1; j<size; j++) {
  45.                 if(map[i][j]==o && valid(x,y))
  46.                     count++;
  47.             }
  48.         }
  49.         return count;
  50.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement