Jump to content

Крестики-нолики


psywalker
 Share

Recommended Posts

  • Replies 52
  • Created
  • Last Reply

Top Posters In This Topic

Когда уже выбрал 3х3 или, там, 5х5, то кнопки переключения между «размерами» не работают.

Да, это сделано специально. Так как если хочешь выбрать поле другого размера, жми "Новая игра" :)

Link to comment
Share on other sites

Молодец, хорошо поработал. Из замечаний - кнопки внизу поля не работают большую часть времени, имеет смысл их прятать тогда. Еще надо блокировать кнопку "Компьютер" после нажатия на нее. А то жмешь-жмешь, ничего не происходит.

Советую еще просчитывать ничейность заранее, когда она очевидна, а не доводить партию до полного заполнения полей. А вообще крестики-нолики тупиковая игра, надо ее бросать и реализовать рендзю.

Link to comment
Share on other sites

1. кнопка "компьютер" неинформативна, пока не нажмешь не поймешь чего это

2. раз во время игры нельзя сразу выбрать (а кстати на фига нельзя, зачем жать лишние кнопки?) другие размеры поля и начать игру, то нужно прятать кнопки эти неработающие, а то вводят в заблуждение

3. по-моему не очень прикольно когда сообщение о чьей-то победе или ничье в алерте появляется. лучше сделать окошко какое-нить под такую объяву

а в целом приятные такие баранки:)

ой:) одновременно написали:)

Link to comment
Share on other sites

Спасиб за замечания. Сделал выводы, что кнопку "Компьютер" надо заменить на "Ход компьютера" и прятать после нажатия, так же как и кнопки выбора поля. И насчёт алерта в конце игры тоже учту.

Алгоритм рассказывай!

Смотри.

Во-время хода компьютера:

1) Он просчитывает, если может выиграть, ставит туда нолик и выигрывает.

2) Если первый вариант не прокатил, он ищет мою победу следующим ходом и обламывает меня, ставя туда нолик.

3) Если два первых варианта не прокатывают, то он ставит нолик рандомно, на любую пустую клетку.

Link to comment
Share on other sites

Третий пункт мне кажется надо изменить. Сейчас получается, что комп всегда защищается, а это плохая стратегия. Надо чтобы ставил не рандомно, а к уже поставленным 2-3-4 фишкам.

Link to comment
Share on other sites

Уже исправил некоторые замечания насчёт кнопок.

http://psywalker.ru/Forum/JS/Primitive/Dom...-Tac-Toe/1.html

var tr = table.getElementsByTagName('tr');

можно заменить на

var tr = table.rows;

аналогично с ячейками

Спасиб, не знал такую штуку)

Третий пункт мне кажется надо изменить. Сейчас получается, что комп всегда защищается, а это плохая стратегия. Надо чтобы ставил не рандомно, а к уже поставленным 2-3-4 фишкам.

Ага, согласен, тогда нужно продумать, как это сделать)

Link to comment
Share on other sites

Не, крестики-нолики хороши для тренировки мозга. Я помню на одном из чампов ACM одна из задач была интересная, её никто из участников тогда не решил. Входные данные: поле с проставленными крестиками и ноликами (3х3), игроки играют заведомо по лучшей стратегии. Выходные данные: кто выиграет, или «ничья» или «нельзя определить». Не помню в чём была соль, но был какой-то качественнейший контрольный пример, которого ни один участник не смог предусмотреть.

Link to comment
Share on other sites

psywalker,

Прикольно :)

Дома поближе посмотрю.

А вообще, если интересно у меня дома есть книжка с математическим анализом этих самых крестиков-ноликов, т.е. выигрышные стратегии, ничейные и т.п. Если интересно, то могу отсканировать. Правда, там, вроде, только для поля 3х3.

Link to comment
Share on other sites

psywalker,

Прикольно :)

Дома поближе посмотрю.

А вообще, если интересно у меня дома есть книжка с математическим анализом этих самых крестиков-ноликов, т.е. выигрышные стратегии, ничейные и т.п. Если интересно, то могу отсканировать. Правда, там, вроде, только для поля 3х3.

Давай, спасибо, буду рад почитать и применить по необходимости.

Link to comment
Share on other sites

А вообще, если интересно у меня дома есть книжка с математическим анализом этих самых крестиков-ноликов, т.е. выигрышные стратегии, ничейные и т.п. Если интересно, то могу отсканировать. Правда, там, вроде, только для поля 3х3.

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

теперь после нажатия "стереть поле" не появляется кнопка "ход компьютера"

Link to comment
Share on other sites

Молодчина! Не зря пустился в бодягу с играми. Доведи уж до конца.

Алгоритм вот надо бы усовершенствовать, а то порой комп явно может выиграть, но из-за этого рандома вофлит и выходит на ничью или вообще проигрывает. В варианте 3х3 совсем уж легко его обыграть...

Link to comment
Share on other sites

Молодчина! Не зря пустился в бодягу с играми. Доведи уж до конца.

Алгоритм вот надо бы усовершенствовать, а то порой комп явно может выиграть, но из-за этого рандома вофлит и выходит на ничью или вообще проигрывает. В варианте 3х3 совсем уж легко его обыграть...

Спасиб, думаю алгоритм переделаю на такой:

Ход компьютера:

1) Смотрит свою победу и ставит нолик, если увидел.

2) Смотрит мою победу следующих ходом, и обламывает меня, ставит нолик.

3) Ищет вариант, чтобы например в одной строке были одни нули, тогда добавляет нолик туда

4) И если уже не прокатил ни один из вариантов, то ставит Рандомно нолик на пустую клетку.

Как алгоритм?

Link to comment
Share on other sites

после третьегог пункта можно добавить

4 - ищет пустой угол на поле и туда ставит, угол - важное поле, сразу три варианта закрывает

5 - ищет строку или столбец где три "х" (для поля 5х5) и нет нулей, и туда делает ход, для предотвращения так сказать:) (для поля 4х4 ищет строку и столбец где два "х")

и вот только после проверки этих пяти вариантов ставит рэндомно, если ничего не подошло:)

правда, не могу определиться в приоритете между пунктами 4 и 5, какой раньше смотреть.

вообще веселей задача сделать на бесконечном поле, игра до пяти одинаковых элементов подряд. играл в такое лет много назад, алгоритм там был серьезный похоже, из двадцати игр один раз выиграл:)

Link to comment
Share on other sites

Тут понимаете в чём дело. Дело в том, что не хочется делать разные алгоритмы для разных полей. Потому-что во-первых я рассчитывал сделать универсальный вариант на любое поле, а три варианта выставил для наглядности. Во-вторых хочется написать один единственный алгоритм на все случаи жизни)

Может такой ещё вариант.

Надо компу заранее в память занести 10 - 20 готовых примеров. Чтобы комп брал сравнивал текущую ситуацию с примером и ставил в нужную точку.

Link to comment
Share on other sites

ну так пункт 5 можно в общий вид переделать легко - искать строку или столбец где крестиков = размер.поля - 2, а ноликов = 0.

в память занести тогда уж 100-200 примеров:) при таком количестве вариантов как в этой игре 10-20 примеров никакой погоды не сделают, эт явно не более 1 процента ото всех вариантов будет.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy