Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.13 KB | None | 0 0
  1. package com.kpfu.itis.libs;
  2.  
  3. //import com.kpfu.itis.libs.*;
  4.  
  5. public class PlayerCompHard extends Player {
  6.     public int[] move(){
  7.         int x, y, col = 0, row = 0;
  8.  
  9.         while (!Feature.inRange(x = (Feature.random.nextInt(3) + 1), 1, TicTacToe.board.WIDTH) ||
  10.                 !Feature.inRange(y = (Feature.random.nextInt(3) + 1), 1, TicTacToe.board.HEIGHT) ||
  11.                 TicTacToe.board.isUsed(--x, --y)){
  12.         }
  13.  
  14.         for (int k = Game.secondPlayerMark; k >= Game.firstPlayerMark; k--){
  15.             for (int i = 0; i < TicTacToe.board.WIDTH; i++){
  16.                 int count = 0;
  17.                 for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
  18.                     if (TicTacToe.board.getCell(i, j) == k){
  19.                         count++;
  20.                         row = i;
  21.                     }
  22.                 }
  23.                 if (count + 1 == Game.countToWin){
  24.                     for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
  25.                         if (TicTacToe.board.getCell(row, j) != k && !TicTacToe.board.isUsed(row, j))
  26.                             return new int[]{row, j};;
  27.                     }
  28.                 }
  29.             }
  30.             for (int i = 0; i < TicTacToe.board.WIDTH; i++){
  31.                 int count = 0;
  32.                 for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
  33.                     if (TicTacToe.board.getCell(j, i) == k){
  34.                         count++;
  35.                         col = i;
  36.                     }
  37.                 }
  38.                 if (count + 1 == Game.countToWin){
  39.                     for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
  40.                         if (TicTacToe.board.getCell(j, col) != k && !TicTacToe.board.isUsed(j, col))
  41.                             return new int[]{j, col};
  42.                     }
  43.                 }
  44.             }
  45.             if (TicTacToe.board.getCell(0, 0) == k && TicTacToe.board.getCell(1, 1) == k && !TicTacToe.board.isUsed(2, 2))
  46.                  return new int[]{2, 2};
  47.             if ((TicTacToe.board.getCell(0, 0) == k && TicTacToe.board.getCell(2, 2) == k) ||
  48.                 (TicTacToe.board.getCell(0, 2) == k && TicTacToe.board.getCell(2, 0) == k) && !TicTacToe.board.isUsed(1, 1))
  49.                  return new int[]{1, 1};
  50.             if (TicTacToe.board.getCell(1, 1) == k && TicTacToe.board.getCell(2, 2) == k && !TicTacToe.board.isUsed(0, 0))
  51.                  return new int[]{0, 0};
  52.  
  53.             if (TicTacToe.board.getCell(0, 2) == k && TicTacToe.board.getCell(1, 1) == k && !TicTacToe.board.isUsed(2, 0))
  54.                  return new int[]{2, 0};
  55.             if (TicTacToe.board.getCell(1, 1) == k && TicTacToe.board.getCell(2, 0) == k && !TicTacToe.board.isUsed(0, 2))
  56.                  return new int[]{0, 2};
  57.         }
  58.  
  59.         return new int[]{x, y};
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement