Coder Social home page Coder Social logo

ruscheckers's People

Contributors

azatnv avatar

Watchers

 avatar

ruscheckers's Issues

Замечания

  1. public ImageView b1;
    public ImageView b2;
    public ImageView b3;
    public ImageView b4;
    public ImageView b5;
    public ImageView b6;
    public ImageView b7;
    public ImageView b8;
    public ImageView b9;
    public ImageView b10;
    public ImageView b11;
    public ImageView b12;
    public ImageView w1;
    public ImageView w2;
    public ImageView w3;
    public ImageView w4;
    public ImageView w5;
    public ImageView w6;
    public ImageView w7;
    public ImageView w8;
    public ImageView w9;
    public ImageView w10;
    public ImageView w11;
    public ImageView w12;

Такого кода быть точно не должно. Подумайте, как сделать нормально.

  1. private static int[][] board = new int[8][8]; //[X][Y]
    private static int[][] boardCopy = new int[8][8]; //[X][Y]

Статического изменяемого состояния быть не должно, это плохой стиль. Попробуйте ввести понятие поля (в виде класса, например)

  1. Постарайтесь избавиться от дублирования кода, хотя бы там, где об этом предупреждает IDE.

  2. Магические числа лучше заменить константами и перечислениями.

  3. Нет проверки обязательного взятия (вернее, его начала).

  4. Длинное взятие прерывается, если шашка превратилась в дамку.

Замечания

  1. То, что в классе Functions как-то совсем не соответствует объектно-ориентированному стилю. Сделайте лучше класс, представляющий поле и методы на нём.
  2. Во всём коде куча магических чисел (8, 7, 3). Вынесите их в статические константы с осмысленными именами.
  3. В findAllPossibleMoves местами копипаста.
  4. От десятков одинаковых ImageView тоже лучше бы избавиться.
  5. Cells представляет и тип ячейки на поле и текущего игрока, что не очень хорошо.
  6. curDepth в createNodes вычисляется неверно. Там получается не текущая глубина, а просто число рассматриваемых ходов. На мысль об этом наводит следующее: поставьте depth в 2000 и запустите бота. Он работает почти так же, как и с depth == 3, то есть получается какой-то ultimate решатель. Посмотрите на position в дебаггере при первом вызове miniMax и увидите в чём, косяк.
  7. Почти вся польза от альфа-бета отсечения убивается за счёт того, что изначально вы строите дерево, ничего не отсекая, а отсечение используете только при оценке позиций.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.