Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.kpfu.itis.libs;
- //import com.kpfu.itis.libs.*;
- public class PlayerCompHard extends Player {
- public int[] move(){
- int x, y, col = 0, row = 0;
- while (!Feature.inRange(x = (Feature.random.nextInt(3) + 1), 1, TicTacToe.board.WIDTH) ||
- !Feature.inRange(y = (Feature.random.nextInt(3) + 1), 1, TicTacToe.board.HEIGHT) ||
- TicTacToe.board.isUsed(--x, --y)){
- }
- for (int k = Game.secondPlayerMark; k >= Game.firstPlayerMark; k--){
- for (int i = 0; i < TicTacToe.board.WIDTH; i++){
- int count = 0;
- for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
- if (TicTacToe.board.getCell(i, j) == k){
- count++;
- row = i;
- }
- }
- if (count + 1 == Game.countToWin){
- for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
- if (TicTacToe.board.getCell(row, j) != k && !TicTacToe.board.isUsed(row, j))
- return new int[]{row, j};;
- }
- }
- }
- for (int i = 0; i < TicTacToe.board.WIDTH; i++){
- int count = 0;
- for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
- if (TicTacToe.board.getCell(j, i) == k){
- count++;
- col = i;
- }
- }
- if (count + 1 == Game.countToWin){
- for (int j = 0; j < TicTacToe.board.HEIGHT; j++){
- if (TicTacToe.board.getCell(j, col) != k && !TicTacToe.board.isUsed(j, col))
- return new int[]{j, col};
- }
- }
- }
- if (TicTacToe.board.getCell(0, 0) == k && TicTacToe.board.getCell(1, 1) == k && !TicTacToe.board.isUsed(2, 2))
- return new int[]{2, 2};
- if ((TicTacToe.board.getCell(0, 0) == k && TicTacToe.board.getCell(2, 2) == k) ||
- (TicTacToe.board.getCell(0, 2) == k && TicTacToe.board.getCell(2, 0) == k) && !TicTacToe.board.isUsed(1, 1))
- return new int[]{1, 1};
- if (TicTacToe.board.getCell(1, 1) == k && TicTacToe.board.getCell(2, 2) == k && !TicTacToe.board.isUsed(0, 0))
- return new int[]{0, 0};
- if (TicTacToe.board.getCell(0, 2) == k && TicTacToe.board.getCell(1, 1) == k && !TicTacToe.board.isUsed(2, 0))
- return new int[]{2, 0};
- if (TicTacToe.board.getCell(1, 1) == k && TicTacToe.board.getCell(2, 0) == k && !TicTacToe.board.isUsed(0, 2))
- return new int[]{0, 2};
- }
- return new int[]{x, y};
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement