Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.11.2020
Сообщений: 1

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

21.11.2020, 12:54. Показов 1291. Ответов 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
8849 / 4500 / 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
8849 / 4500 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru