|
|
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
В основном у меня сейчас в программе крестики-нолики используется два алгоритма: -просчет веса клетки (исходя из комбинаций) -препросмотр возможный ходов и выбор наилучшего. А есть какие-нибудь дополнительные алгоритмы для оптимизации ходов? Например, чтобы не сразу стало понятно замысел компьютера на первых ходах срдеи равных можно выбирать случайным образом. Вполне непонятно становится. Хотя позже, когда существует фактически 1 нормальный ход, данный алгоритм не приживается: не из чего выбирать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 17:05 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Также есть немало способов уменьшить количество просмотров, за счеи, правда, повышения памяти. ПАМАТЬ[.............|.............]СКОРОСТЬ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 17:59 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
AklinВ основном у меня сейчас в программе крестики-нолики используется два алгоритма: -просчет веса клетки (исходя из комбинаций) -препросмотр возможный ходов и выбор наилучшего. .... если идёт речь о "стандартной" доске 3*3 то рекомендую (третий алгоритм) забить ифами возможные комбинации. Там штук 5 ифов и однин исключительный случай - вся игра. Если тупо следовать тактики - проиграть НЕ возможно. Выиграть можно, если первым начинаешь и противник допускает тактическую ошибку...это всё... если память не изменяет (всё таки лет дцать прошло)... другое дело - рэндзю (не знаю, правильно ли звучит с японского). Это игра - уже прочищает мозги основательно, красивая, заставляет думать тактически и правильно оценять свои возможности. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 12:49 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Как раз о n*n и иэет речь. А про 3*3 - там делать нечего, если оба игрока не дураки, то будет ничья. Прим. также игра называется Го-Моку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 13:33 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
AklinВ основном у меня сейчас в программе крестики-нолики используется два алгоритма: -просчет веса клетки (исходя из комбинаций) -препросмотр возможный ходов и выбор наилучшего. Ну... Ты можешь запоминать вес каждой позиции, и тогда если при дальнейшей игре/переборе ты наткнешься на эту позицию опять, то уже будешь знать на сколько она выйгрышна. Так же можешь делать ходы, которые будут минимизировать шансы противника на победу. Т.е. если ты сделаешь ход, то он должен быть что бы увеличить твои щансы на победу, и уменьшить шансы оппонента на выишрыш. На англицком можно почитать тут и тут . Если у тебя крестики-нолики 3х3, 4х4 или 5x5 то тогда ты по идее сможешь просчитать все просто так, а если больше - то просто просчитывай маленькие куски вокруг того места где противник сделал ход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 06:33 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Это було включено практически сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 09:46 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Вот простейший алгоритм АИ для крестиков ноликов на доске 3 на 3. Работает железно. Воплощен может быть даже на калькуляторе. (Когда учился программить, придумал его для ZX=Spectrum) Доска состоит из 8 блоков по три клетки подряд. (3 вертикальных, 3 горизонтальных, две диагонали). При обработке своего хода комп должен сделать следующее. (не важно, чьим ходом заняты клетки - компьютерным или человека) 1)проверить доску, и посчитать количество знаков на каждой диагонали. 2)если есть диагональ, содержащая только одну пустую клетк, ход делается на неё. Если таких несколько (трудно представить, как до такого могло дойти, но мало ли) - на общую пустую клетку либо на случайную. 3)если есть есть несколько диагоналей с двумя пустыми клетками, ход делается на клетку, которую пересекает наибольшее число диагоналей этого типа. (с одной занятой клеткой). 4)если все предыдущеие пункты не срабатывают, ход делается на центральную клетку, или (если хотите дать шанс на победу) - на случайную. В случае, если первый ход делает комп, все партию можно разложить на if|else. Была такая программа на микрокалькуляторе МК56, кажется. Очень просто, но под рукой её нет, а принцип построения не помню. Вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 02:20 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
МНЕ НЕ НАДО 3*3. Я могу написать прогу, которая сгенерит прогу, которая сама напишет крестики-нолики для 3*3. Мне нужны алгоритмы, помимо вышеописааных, для игры крестики-нолики на фактически бесконечном поле. (действительно - от 12*12 до 30*30) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 10:18 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Относительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 09:39 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА. Если компьютера не дурак, то ходя вторым, приведет мимнимум к ничьей. Выиграть у умного соперника в 3*3 невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:31 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА. Сыграем на деньги ? Ты первый игрок, в случае ничьей платишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:54 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА. БРЯХНЯ... (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 15:03 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Last_AlienОтносительно 3*3. Если игрок, который начинает, не дурак, то он выигрывает ВСЕГДА. Сыграем на деньги ? Ты первый игрок, в случае ничьей платишь Попробуем :-) | | | | | |x| | | | | | ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 09:48 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
А можно я ? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 10:32 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Last_Alien | | | | | |x| | | | | | Я просто для азарта: играй кем хочешь, можешь со всеми сразу. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 11:06 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 12:00 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Помимо всего перечисленного, есть и некоторые нестандартные алгоритмы, отсящиеся к искусственному интеллекту: 1) Сделать нейронную сеть. В качестве входа давать некоторую оценку исходной позиции( сколько у тебя три подряд, у врага, сколько у тебя 4 подряд, и т.д.) - в качестве выхода - оценка позиции от 0 до 1. Потом выбирать позицию с макс. очками. Придётся эту сетку долго тренировать(давать исходные данные, напрмер против стандартного алгоритма или друг с другом), а затем просчитать её. 2) Генетические алгоритмы: придумываем примитивный язык программирования позволяющий складывать и вычитать. Генерируем случайную программу, которая на входе берёт всё поле, а на выход - куда ставить. Генерируется некоторое количетсво таких программ, они играют друг с другом и с эталоном(стандартной программой). Дольше всех продержавшиеся программы с небольщими случайными изменениями , новые случайные и перекрещивание этих проблем берём в следующее поколение. С некоторого поколения получатся достаточно неплохие программы 3) Кластерный анализ: разбиваем пространство на некоторые группы (кластеры). Например доску 20*20 можно ещё дополнить диагоналями, количеством кестиков и ноликов на горизонтали,вертикали,всех диагонолях - создаём многомерное пространство. Далее разбиваем возможные комбинации на разные группы(возможные группы- следующим ходом выигрыш, следующим ходом проигрыш,необходимо атаковать врага(строить 3 и 4), необходимо защищаться(не давать врагу строить 3 и 4) 4) Нечёткая логика. Посколько есть разные вссыказывания насчёт игры( не давать врагу сторить слищком много открытых троек, стараться увеличавть свои но не помогаю врашу делать четвёртуи и так далее), то применения нечёткой логики позволит достаточно просто сформулировать правила как следует ходить в той или иной ситуации... правда где найти специалистов с их советами? 5) Эмулирование поведения муравьёв,эмулирование отжига - к сожалению сразу не соображу,как это здесь можно применить )), однако для расстановки n ферзей на доске n на n и для задачи коммиваяжора они работают классно. Ну а если всё вышепречисленное кажется надуманным и неправильным, то подойдёт и таблица дебютов - стандартные позиции со всем возможными ходами на начальном этапе игры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 15:43 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
BarloneА можно я ? Код: plaintext 1. 2. |x| | | | |x| | |o| | | ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 15:47 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Aklin Я просто для азарта: играй кем хочешь, можешь со всеми сразу. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 15:48 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
last_alien2 Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. На какую сумму играем ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 16:07 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Ничья :-((( Какой позор на мою седую голову :-((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 16:38 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Aklin Я просто для азарта: играй кем хочешь, можешь со всеми сразу. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 17:18 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Написал версию без: -препросмотра, -рандома на равных позициях. ОНО ИГРАЕТ! Причем неплохо. я фигею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2006, 22:17 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
last_alien2Ничья :-((( Какой позор на мою седую голову :-((( хде деньги, Киса ? Позволю себе мааааленькую цитату: авторЕсли игрок, который начинает, НЕ ДУРАК, то он выигрывает ВСЕГДА ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2006, 08:20 |
|
||
|
Крестики-нолики. Дополнительные алгоритмы.
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) last_alien2Ничья :-((( Какой позор на мою седую голову :-((( хде деньги, Киса ? Позволю себе мааааленькую цитату: авторЕсли игрок, который начинает, НЕ ДУРАК, то он выигрывает ВСЕГДА Деньги в банке :-) Не сыпь мне соль на рану. Ну тормознул... Что ж мне теперь харакири сделать?:-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2006, 08:44 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33932699&tid=1341366]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
84ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 555ms |

| 0 / 0 |
