0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 44
|
|
1 | |
гомоку / крестики-нолики 5 в ряд17.10.2013, 13:00. Показов 4910. Ответов 3
Метки нет (Все метки)
0
|
17.10.2013, 13:00 | |
Ответы с готовыми решениями:
3
Гомоку (го, крестики-нолики 5 в ряд) по сети Builder C++ Крестики-нолики (5 в ряд поле 15х15) никак не могу написать крестики-нолики (5 в ряд) Учим компьютер играть в Гомоку (пять в ряд) |
Практикантроп
4840 / 2725 / 533
Регистрация: 23.09.2011
Сообщений: 5,795
|
|
18.10.2013, 12:38 | 2 |
pmipmi, вы всё готовое решение ищете... . Искусственный интеллект - это вам не хухры-мухры. Если неохота извилины напрягать, за вас решение искать никто не будет.
Вот приблизительный подход (основанный на том примере, что я уже предложил): создается еще один массив - зеркало основного. При ответе компа в цикле для каждой незанятой клетки (пустого элемента массива) отправляются 8х4 запросов функции find5, которая определяет, построена ли линия из 5 элементов. Почему 8х4: потому что из одной клетки 8 направлений (2верт 2гориз 4диаг), а нужно "подставить" элемент противника в центральное поле и одно из соседних, и запросить функцию: получилось ли "пять в ряд". Если ответ положительный, то в одно из двух полей (то, что контактирует с занятым полем) следует установить "свою" метку. Если положительного ответа не будет - тогда по случайному закону, но вблизи "ответа" противника. Если вы владеете навыками программирования и поняли предложенный мной ранее алгоритм, то такая задача решается в течение дня.
1
|
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 44
|
|
18.10.2013, 14:45 [ТС] | 3 |
nick42,
я не понял вашу функцию find5 написал для каждого направления. прописал приоритеты, но ИИ всё же нубовское. иногда запинаюсь даже на синтаксисе, до этого писал только консольные... так что пока не получается.
0
|
Практикантроп
4840 / 2725 / 533
Регистрация: 23.09.2011
Сообщений: 5,795
|
|
18.10.2013, 15:08 | 4 |
Не по теме: ...не произносите здесь таких крамольных слов!!... Вкратце объясню идею: функция find5 в параметрах получает приращения по горизонтали (-1 0 +1) и вертикали; и работает с двумерным массивом grad (слепок таблицы grid 9x9) след. образом: в цикле для каждого элемента массива (ячейка таблицы), применяя приращения при каждой итерации, рассчитывается количество одинаковых элементов, идущих подряд. Если это число 5 и более, то возвращается true. В массиве "крестик" кодируется нулем, а "нолик" единицей (по значениям индекса радиогрупбокса); 5 - поле пустое. Таким образом достаточно 4-х обращений к функции, чтоб просканировать таблицу во всех направлениях. Если хотя бы раз функция вернет true, то комбинация построена. Предложите лучший метод! Я это все придумывал за пару часов и к этому не возвращался.
0
|
18.10.2013, 15:08 | |
18.10.2013, 15:08 | |
Помогаю со студенческими работами здесь
4
Крестики нолики Крестики Нолики Крестики-нолики-ошибки Игра Крестики-нолики Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |