Как конвертировать это Java-приложение MInimax в Negamax?

У меня есть другие занятия помимо этого. Я покажу вам только то, где я применил минимаксный алгоритм.

import java.util.Random;
import java.util.Scanner;

public class TicTacToe {

public static final  Random RANDOM = new Random();

public static void main(String[]args) {
    Board b = new Board();
    Scanner scanner = new Scanner(System.in);
    b.displayBoard();
    System.out.println("Select turn:\n1. Computer (X) / 2. User (O) : ");

    int choice  = scanner.nextInt();

    if (choice == Board.PLAYER_X) {
        Point p = new Point(RANDOM.nextInt(3), RANDOM.nextInt(3));
        b.placeAMove(p,  Board.PLAYER_X);
        b.displayBoard();
    }

    while (!b.isGameOver()) {
        boolean moveOk = true;

        do {
            if (!moveOk) {
                System.out.println("Cell already filled !");
            }

            System.out.println("Your move: ");
            Point userMove = new Point(scanner.nextInt(), scanner.nextInt());
            moveOk = b.placeAMove(userMove, Board.PLAYER_O);


        } while (!moveOk);

        b.displayBoard();

        if (b.isGameOver())
            break;

        b.minimax(0, Board.PLAYER_X);
        System.out.println("Computer choose position: " + b.computerMove);

        b.placeAMove(b.computerMove, Board.PLAYER_X);
        b.displayBoard();

    } 

    if (b.hasPlayerWon(Board.PLAYER_X))
        System.out.println("You LOST!");
    else if (b.hasPlayerWon(Board.PLAYER_O))
        System.out.println("You WIN!");
    else
        System.out.println("DRAW!");
}

}

0 ответов

Другие вопросы по тегам