powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Крестики-нолики. Дополнительные алгоритмы.
25 сообщений из 76, страница 1 из 4
Крестики-нолики. Дополнительные алгоритмы.
    #33908754
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В основном у меня сейчас в программе крестики-нолики используется два алгоритма:
-просчет веса клетки (исходя из комбинаций)
-препросмотр возможный ходов и выбор наилучшего.

А есть какие-нибудь дополнительные алгоритмы для оптимизации ходов?
Например, чтобы не сразу стало понятно замысел компьютера на первых ходах срдеи равных можно выбирать случайным образом. Вполне непонятно становится. Хотя позже, когда существует фактически 1 нормальный ход, данный алгоритм не приживается: не из чего выбирать.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33908953
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также есть немало способов уменьшить количество просмотров, за счеи, правда, повышения памяти.
ПАМАТЬ[.............|.............]СКОРОСТЬ.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33910290
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AklinВ основном у меня сейчас в программе крестики-нолики используется два алгоритма:
-просчет веса клетки (исходя из комбинаций)
-препросмотр возможный ходов и выбор наилучшего.
....

если идёт речь о "стандартной" доске 3*3 то рекомендую (третий алгоритм) забить ифами возможные комбинации. Там штук 5 ифов и однин исключительный случай - вся игра. Если тупо следовать тактики - проиграть НЕ возможно. Выиграть можно, если первым начинаешь и противник допускает тактическую ошибку...это всё... если память не изменяет (всё таки лет дцать прошло)...

другое дело - рэндзю (не знаю, правильно ли звучит с японского). Это игра - уже прочищает мозги основательно, красивая, заставляет думать тактически и правильно оценять свои возможности.


с уважением
(круглый)
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33910433
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как раз о n*n и иэет речь. А про 3*3 - там делать нечего, если оба игрока не дураки, то будет ничья.

Прим. также игра называется Го-Моку.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33911953
Фотография La_Sania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AklinВ основном у меня сейчас в программе крестики-нолики используется два алгоритма:

-просчет веса клетки (исходя из комбинаций)
-препросмотр возможный ходов и выбор наилучшего.


Ну... Ты можешь запоминать вес каждой позиции, и тогда если при дальнейшей игре/переборе ты наткнешься на эту позицию опять, то уже будешь знать на сколько она выйгрышна.

Так же можешь делать ходы, которые будут минимизировать шансы противника на победу. Т.е. если ты сделаешь ход, то он должен быть что бы увеличить твои щансы на победу, и уменьшить шансы оппонента на выишрыш.

На англицком можно почитать тут и тут .

Если у тебя крестики-нолики 3х3, 4х4 или 5x5 то тогда ты по идее сможешь просчитать все просто так, а если больше - то просто просчитывай маленькие куски вокруг того места где противник сделал ход.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33912193
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это було включено практически сразу.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33923465
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот простейший алгоритм АИ для крестиков ноликов на доске 3 на 3. Работает железно. Воплощен может быть даже на калькуляторе. (Когда учился программить, придумал его для ZX=Spectrum)

Доска состоит из 8 блоков по три клетки подряд.
(3 вертикальных, 3 горизонтальных, две диагонали).

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

1)проверить доску, и посчитать количество знаков на каждой диагонали.
2)если есть диагональ, содержащая только одну пустую клетк, ход делается на неё. Если таких несколько (трудно представить, как до такого могло дойти, но мало ли) - на общую пустую клетку либо на случайную.
3)если есть есть несколько диагоналей с двумя пустыми клетками, ход делается на клетку, которую пересекает наибольшее число диагоналей этого типа. (с одной занятой клеткой).
4)если все предыдущеие пункты не срабатывают, ход делается на центральную клетку, или (если хотите дать шанс на победу) - на случайную.

В случае, если первый ход делает комп, все партию можно разложить на if|else. Была такая программа на микрокалькуляторе МК56, кажется. Очень просто, но под рукой её нет, а принцип построения не помню.

Вопросы?
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33923826
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МНЕ НЕ НАДО 3*3. Я могу написать прогу, которая сгенерит прогу, которая сама напишет крестики-нолики для 3*3.

Мне нужны алгоритмы, помимо вышеописааных, для игры крестики-нолики на фактически бесконечном поле. (действительно - от 12*12 до 30*30)
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33926817
Фотография Last_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Относительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33927264
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА.
Если компьютера не дурак, то ходя вторым, приведет мимнимум к ничьей.
Выиграть у умного соперника в 3*3 невозможно.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33927406
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА.

Сыграем на деньги ? Ты первый игрок, в случае ничьей платишь
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33928503
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА.

БРЯХНЯ...

(круглый)
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33931386
Фотография Last_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА.

Сыграем на деньги ? Ты первый игрок, в случае ничьей платишь

Попробуем :-)

| | | |
| |x| |
| | | |
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33931487
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно я ?
Код: plaintext
1.
2.
| | | |
| |x| |
|o| | |
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33931599
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last_Alien
| | | |
| |x| |
| | | |
Я просто для азарта: играй кем хочешь, можешь со всеми сразу.
Код: plaintext
1.
2.
3.
|0| | |
| |x| |
| | | |
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33931774
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33932633
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помимо всего перечисленного, есть и некоторые нестандартные алгоритмы, отсящиеся к искусственному интеллекту:

1) Сделать нейронную сеть. В качестве входа давать некоторую оценку исходной позиции( сколько у тебя три подряд, у врага, сколько у тебя 4 подряд, и т.д.) - в качестве выхода - оценка позиции от 0 до 1. Потом выбирать позицию с макс. очками. Придётся эту сетку долго тренировать(давать исходные данные, напрмер против стандартного алгоритма или друг с другом), а затем просчитать её.

2) Генетические алгоритмы: придумываем примитивный язык программирования позволяющий складывать и вычитать. Генерируем случайную программу, которая на входе берёт всё поле, а на выход - куда ставить. Генерируется некоторое количетсво таких программ, они играют друг с другом и с эталоном(стандартной программой). Дольше всех продержавшиеся программы с небольщими случайными изменениями , новые случайные и перекрещивание этих проблем берём в следующее поколение. С некоторого поколения получатся достаточно неплохие программы

3) Кластерный анализ: разбиваем пространство на некоторые группы (кластеры). Например доску 20*20 можно ещё дополнить диагоналями, количеством кестиков и ноликов на горизонтали,вертикали,всех диагонолях - создаём многомерное пространство. Далее разбиваем возможные комбинации на разные группы(возможные группы- следующим ходом выигрыш, следующим ходом проигрыш,необходимо атаковать врага(строить 3 и 4), необходимо защищаться(не давать врагу строить 3 и 4)

4) Нечёткая логика. Посколько есть разные вссыказывания насчёт игры( не давать врагу сторить слищком много открытых троек, стараться увеличавть свои но не помогаю врашу делать четвёртуи и так далее), то применения нечёткой логики позволит достаточно просто сформулировать правила как следует ходить в той или иной ситуации... правда где найти специалистов с их советами?
5) Эмулирование поведения муравьёв,эмулирование отжига - к сожалению сразу не соображу,как это здесь можно применить )), однако для расстановки n ферзей на доске n на n и для задачи коммиваяжора они работают классно.

Ну а если всё вышепречисленное кажется надуманным и неправильным, то подойдёт и таблица дебютов - стандартные позиции со всем возможными ходами на начальном этапе игры
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33932646
last_alien2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneА можно я ?
Код: plaintext
1.
2.
| | | |
| |x| |
|o| | |


|x| | |
| |x| |
|o| | |
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33932650
last_alien2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
Я просто для азарта: играй кем хочешь, можешь со всеми сразу.
Код: plaintext
1.
2.
3.
|0| | |
| |x| |
| | | |


Код: plaintext
1.
2.
3.
|0| | |
| |x| |
|x| | |
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33932699
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_alien2
Код: plaintext
1.
2.
3.
|0| | |
| |x| |
|x| | |


Код: plaintext
1.
2.
3.
|0| |0|
| |x| |
|x| | |

На какую сумму играем ?
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33932782
last_alien2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничья :-(((
Какой позор на мою седую голову :-(((
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33932899
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
Я просто для азарта: играй кем хочешь, можешь со всеми сразу.

Код: plaintext
1.
2.
3.
|0| |0|
| |x| |
|x| | |
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33933348
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал версию без:
-препросмотра,
-рандома на равных позициях.

ОНО ИГРАЕТ! Причем неплохо. я фигею.
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33933542
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_alien2Ничья :-(((
Какой позор на мою седую голову :-(((

хде деньги, Киса ?



Позволю себе мааааленькую цитату:

авторЕсли игрок, который начинает, НЕ ДУРАК, то он выигрывает ВСЕГДА
...
Рейтинг: 0 / 0
Крестики-нолики. Дополнительные алгоритмы.
    #33933572
last_alien2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) last_alien2Ничья :-(((
Какой позор на мою седую голову :-(((

хде деньги, Киса ?



Позволю себе мааааленькую цитату:

авторЕсли игрок, который начинает, НЕ ДУРАК, то он выигрывает ВСЕГДА

Деньги в банке :-)

Не сыпь мне соль на рану. Ну тормознул... Что ж мне теперь харакири сделать?:-)))
...
Рейтинг: 0 / 0
25 сообщений из 76, страница 1 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Крестики-нолики. Дополнительные алгоритмы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]