0 / 0 / 0
Регистрация: 21.11.2020
Сообщений: 1

Прогнозирование победы в крестики-нолики

21.11.2020, 12:54. Показов 1298. Ответов 4

Студворк — интернет-сервис помощи студентам
У нас есть поле 10x10 для крестиков и ноликов. На поле отмечены крестики, нолики или точки(означает что клетка пустая). Что бы выиграть, надо что бы в ряд или по диагонали было 5 элементов, и на основе входных данных предсказать кто победит.

Буду благодарен коду на python, или другом яп, или хотя бы словесное описание алгоритма

Входные данные:
..........
..........
..........
..........
...0XX0...
...X0X0...
..........
..........
..........
..........

Выходные данные:
X
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2020, 12:54
Ответы с готовыми решениями:

Крестики-нолики
Напишите класс TicTacToeBoard для игры в крестики-нолики, который должен иметь следующие методы: new_game() – для создания новой игры;...

Крестики-нолики
Два игрока играют в крестики-нолики. Напишите программу, которая после каждого хода игрока проверяет поле и, если игра завершилась, выводит...

Крестики-нолики
Пишу крестики нолики, этот кусок кода отвечает за считывание матрицы и проверку на победителя, вот в чем заключается проблема: Не понимаю...

4
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
21.11.2020, 14:44
uimpl, Алгоритм, конечно - если есть возможность "поставить" один "Х" или "О" на пересечении "линий" так, чтобы получилось минимум две "сплошные" последовательности из трех знаков, не имеющих каждая "по краям" противоположного "знака"...
Х
ХХ
Х Х
Или
ХХХ
Х
Х
Или
--Х
-Х-Х
Х----Х
Но
ХХХО
Х
Х
Не является решением - после верхних Х есть сразу О
ХХХ-О
Х
Х
Это является решением
Или одна последовательность из 4 (со свободными концами) или 5 (ну это понятно)...
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
21.11.2020, 15:21
Мне тоже хотелось бы написать такую программу, которую хочет ТС, но ничего толком не вышло. Только интерфейс красивый написал, на этом успехи и закончились.

Добавлено через 2 минуты
Друг один раз сыграл партию с программой, выиграл в 8 ходов, больше не играл (потому что скучно со слабым соперником играть).

Добавлено через 1 минуту
Ну по крайней мере, не в пять ходов программа проиграла .
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
21.11.2020, 15:31
КулХацкеръ, алгоритм "не проиграть" - при появлении "по линии" двух знаков противника ставится рядом в линии свой знак. Если два знака с "пробелом" по линии, то обяз между ними
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
21.11.2020, 15:56
Примерно такой алгоритм и был, про агрессию даже и не думал, отбиться бы. Если программа находила линию из двух знаков противника на линии из пяти клеток, то прибавляла в свободные клетки опасность 10, если находила линию из трёх знаков противника на линии из шести клеток, то добавляла в свободные клетки опасность 100, для линии из четырёх знаков добавлялась опасность 1000, и так как опасности суммировались, то к примеру, пересечение двух линий из трёх знаков опаснее (имеет уже опасность 200, а не 100).

Добавлено через 1 минуту
Далее программа просто выбирала клетку с наибольшей опасностью и ставила нулик (она всегда за нолики играла).

Добавлено через 3 минуты
Обидно, но так и не получилось толком реализовать алгоритм. По неясной причине программа добавляла опасность на краю доски, где не было никакой активности и никаких крестиков, в итоге при принятии решения она часто ходила на край доски, хотя надо было обороняться в центре.

Боролся с этим глюком долго и мучительно, потом просто забросил программу .

Добавлено через 4 минуты
Да и вообще, у ТС задача не просто написать играющую программу, а сделать прогноз. Догадываюсь, что это ещё сложнее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2020, 15:56
Помогаю со студенческими работами здесь

Нолики-крестики
Напишите программу, которая определяет, кто выиграл в крестики-нолики на увеличенном квадратном поле, выстроив подряд по горизонтали или по...

Крестики-нолики
Напишите функцию tic_tac_toe(field), которая принимает на вход список списков 3х3 — поле игры в крестики-нолики. На этом поле отражен...

Крестики - нолики
Есть готовый код, дали задание разобрать логику кода, шаг за шагом... что-то у меня всё запуталось в голове, может кто-то поможет...

Крестики-нолики
Мне надо сделать игру крестики-нолики, как бы... игра простая, в интернете бесконечное количество вариантов, но есть один нюанс: поле...

Крестики-нолики
Добрый день! Подскажите, как из строки построить матрицу 3*3 Enter cells: "O OXXO XX" --------- | O O | | X X O | | X X | ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru