Обсуждение:Крестики-нолики
Ошибка на картинке[править код]
на прилагаемой картинке -- ошибка! почему там ноликов больше, чем крестиков, если крестики ходят первыми??!
- Кстати, да. Сейчас перерисую... #!George Shuklin 15:01, 22 сентября 2006 (UTC)
- Хе, заодно и в векторе получилось.#!George Shuklin 15:09, 22 сентября 2006 (UTC)
- Спасибо за картинку! Только жаль, что в ней не крестики, а нолики первыми ходят :( Что делать? Я по этой картинке даже фильм учебный хочу сделать! Natkabrown 07:35, 23 мая 2012 (UTC)
алгоритм за нолики к нечией непашет[править код]
За нолики. Если противник сходил первым ходом в центр, ответить ходом в любой из углов, если противник сходит первым ходом не в центр, ответить ходом в центр. Каждым следующим ходом блокировать возможность построения противником очередной тройки, при возможности выбора предпочитая ходы в углы. — Ничья Данный алгоритм предполагает оптимальную игру противника. Естественно, если противник допускает ошибку, позволяющую следующим ходом построить тройку, её следует построить, но при правильной игре такое невозможно.
если пойти 9-1-7 то выйгрыш. icq 3079670
Крестики-нолики на практике[править код]
Кстати, если мы рассказываем на практике о крестиках-ноликах, но неужели было бы плохо показать на практике что это такое? Тем более что программа демонстрирует неизвестные ранее возможности/разновидности. Я и показал программу для игры в крестики-нолики. Разве это плохо? Тем более в наше время, когда сложно найти соперника для игры на бумаги, т.к. все за компьютерами постоянно сидят. Но кто-то решил, что люди не должны узнать на практике что такое "крестики-нолики". — Эта реплика добавлена участником Frato (о · в) 04:53, 9 апреля 2009
- Потому что сейчас программ для игры очень много! А выбирать одну, и не самую простую - это реклама, которой здесь быть не должно. infovarius 15:04, 9 апреля 2009 (UTC)
- В этой статье я не видел ни одной ссылки ни на одну программу, хоть одна ссылка должна быть, иначе читатель останется в неведении Frato 21:21, 9 апреля 2009 (UTC)Frato
Дерево игровых ситуаций[править код]
Я тут написал программу на graphviz'е: граф, отображающий дерево игровых ситуаций для крестиков-ноликов. Но я не придумал, как заставить Википедию отобразить эту программу, поэтому напишу ее сюда.
Кстати, в алгоритме небольшая неточность:
>Сделать первый ход в центральное поле... Если противник ответил ходом на сторону — он проиграл. Следует ответить ходом в один из двух несоседних углов.
На самом деле, можно ответить ходом в любой угол. Это следует из того, что
>Сделать первый ход в угол... Если противник ответил ходом на сторону, он проиграл. Следует ответить ходом в центр, сводя к предыдущей стратегии. — Выигрыш.
Если противник поставил нолик в соседней с крестиком клетке, а следующий ход крестиком будет в центр, то уже получается, что в "предыдущей стратегии" можно отвечать ходом в соседний угол.
Кстати, было бы неплохо, если бы кто-нибудь рассмотрел случай, когда первый ход крестиками осуществляется на сторону.
<graphviz>
digraph G{
rankdir=LR;
size="1500,1500";
1[shape=record,label="{||}|{||}|{||}"];
2[shape=record,label="{x||}|{||}|{||}"];
3[shape=record,label="{||}|{|x|}|{||}"];
4[shape=record,label="{x|o|}|{||}|{||}"];
5[shape=record,label="{x||o}|{||}|{||}"];
6[shape=record,label="{x||}|{|o|}|{||}"];
7[shape=record,label="{|o|}|{|x|}|{||}"];
8[shape=record,label="{o||}|{|x|}|{||}"];
9[shape=record,label="{x||o}|{||}|{x||}"];
10[shape=record,label="{x||}|{|o|}|{||x}"];
11[shape=record,label="{|o|}|{|x|}|{x||}"];
12[shape=record,label="{o||x}|{|x|}|{||}"];
13[shape=record,label="{x|o|o}|{||}|{x||}"];
14[shape=record,label="{x||o}|{o||}|{x||}"];
15[shape=record,label="{x||}|{|o|}|{o||x}"];
16[shape=record,label="{x||}|{o|o|}|{||x}"];
17[shape=record,label="{|o|o}|{|x|}|{x||}"];
18[shape=record,label="{o|o|}|{|x|}|{x||}"];
19[shape=record,label="{o||x}|{|x|}|{o||}"];
20[shape=record,label="{o||x}|{o|x|}|{||}"];
21[shape=record,label="{x|o|o}|{x||}|{x||}"];
22[shape=record,label="{x||o}|{o||}|{x||x}"];
23[shape=record,label="{x||x}|{|o|}|{o||x}"];
24[shape=record,label="{x||}|{o|o|x}|{||x}"];
25[shape=record,label="{x|o|o}|{|x|}|{x||}"];
26[shape=record,label="{o|o|x}|{|x|}|{x||}"];
27[shape=record,label="{o||x}|{x|x|}|{o||}"];
28[shape=record,label="{o||x}|{o|x|}|{x||}"];
29[shape=record,label="{x||o}|{o||}|{x|o|x}"];
30[shape=record,label="{x|o|x}|{|o|}|{o||x}"];
31[shape=record,label="{x||o}|{o|o|x}|{||x}"];
32[shape=record,label="{x||}|{o|o|x}|{o||x}"];
33[shape=record,label="{x|o|o}|{|x|}|{x||o}"];
34[shape=record,label="{o||x}|{x|x|o}|{o||}"];
35[shape=record,label="{o||x}|{x|x|}|{o|o|}"];
36[shape=record,label="{x||o}|{o|x|}|{x|o|x}"];
37[shape=record,label="{x|o|x}|{|o|x}|{o||x}"];
38[shape=record,label="{x||o}|{o|o|x}|{x||x}"];
39[shape=record,label="{x||x}|{o|o|x}|{o||x}"];
40[shape=record,label="{x|o|o}|{x|x|}|{x||o}"];
41[shape=record,label="{o|x|x}|{x|x|o}|{o||}"];
42[shape=record,label="{o||x}|{x|x|x}|{o|o|}"];
43[shape=record,label="{x||o}|{o|o|x}|{x|o|x}"];
44[shape=record,label="{x|o|o}|{o|o|x}|{x||x}"];
45[shape=record,label="{o|x|x}|{x|x|o}|{o|o|}"];
46[shape=record,label="{o|x|x}|{x|x|o}|{o||o}"];
47[shape=record,label="{x|x|o}|{o|o|x}|{x|o|x}"];
48[shape=record,label="{x|o|o}|{o|o|x}|{x|x|x}"];
49[shape=record,label="{o|x|x}|{x|x|o}|{o|o|x}"];
50[shape=record,label="{o|x|x}|{x|x|o}|{o|x|o}"];
1->2;
1->3;
2->4[label="win"];
2->5[label="win"];
2->6;
3->7[label="win"];
3->8;
5->9;
5->12[label="drow possible",style="dashed"];
6->10;
7->11;
4->11;
8->12;
9->13;
9->14;
10->15;
10->16;
11->17;
11->18;
12->19;
12->20;
13->21;
14->22;
15->23;
16->24;
17->25;
18->26;
19->27;
20->28;
22->29;
23->30;
24->31;
24->32;
25->33;
27->34;
27->35;
29->36;
30->37;
31->38;
32->39;
33->40;
34->41;
35->42;
38->43;
38->44;
41->45;
41->46;
43->47;
44->48;
45->49;
46->50;
}
</graphviz>
Clothclub 15:29, 21 сентября 2009 (UTC)
Может быть заменить на известный Википедии (при подстановке graphviz вместо cpp выдаёт ошибку)
digraph G{
rankdir=LR;
size="1500,1500";
1[shape=record,label="{||}|{||}|{||}"];
2[shape=record,label="{x||}|{||}|{||}"];
3[shape=record,label="{||}|{|x|}|{||}"];
4[shape=record,label="{x|o|}|{||}|{||}"];
5[shape=record,label="{x||o}|{||}|{||}"];
6[shape=record,label="{x||}|{|o|}|{||}"];
7[shape=record,label="{|o|}|{|x|}|{||}"];
8[shape=record,label="{o||}|{|x|}|{||}"];
9[shape=record,label="{x||o}|{||}|{x||}"];
10[shape=record,label="{x||}|{|o|}|{||x}"];
11[shape=record,label="{|o|}|{|x|}|{x||}"];
12[shape=record,label="{o||x}|{|x|}|{||}"];
13[shape=record,label="{x|o|o}|{||}|{x||}"];
14[shape=record,label="{x||o}|{o||}|{x||}"];
15[shape=record,label="{x||}|{|o|}|{o||x}"];
16[shape=record,label="{x||}|{o|o|}|{||x}"];
17[shape=record,label="{|o|o}|{|x|}|{x||}"];
18[shape=record,label="{o|o|}|{|x|}|{x||}"];
19[shape=record,label="{o||x}|{|x|}|{o||}"];
20[shape=record,label="{o||x}|{o|x|}|{||}"];
21[shape=record,label="{x|o|o}|{x||}|{x||}"];
22[shape=record,label="{x||o}|{o||}|{x||x}"];
23[shape=record,label="{x||x}|{|o|}|{o||x}"];
24[shape=record,label="{x||}|{o|o|x}|{||x}"];
25[shape=record,label="{x|o|o}|{|x|}|{x||}"];
26[shape=record,label="{o|o|x}|{|x|}|{x||}"];
27[shape=record,label="{o||x}|{x|x|}|{o||}"];
28[shape=record,label="{o||x}|{o|x|}|{x||}"];
29[shape=record,label="{x||o}|{o||}|{x|o|x}"];
30[shape=record,label="{x|o|x}|{|o|}|{o||x}"];
31[shape=record,label="{x||o}|{o|o|x}|{||x}"];
32[shape=record,label="{x||}|{o|o|x}|{o||x}"];
33[shape=record,label="{x|o|o}|{|x|}|{x||o}"];
34[shape=record,label="{o||x}|{x|x|o}|{o||}"];
35[shape=record,label="{o||x}|{x|x|}|{o|o|}"];
36[shape=record,label="{x||o}|{o|x|}|{x|o|x}"];
37[shape=record,label="{x|o|x}|{|o|x}|{o||x}"];
38[shape=record,label="{x||o}|{o|o|x}|{x||x}"];
39[shape=record,label="{x||x}|{o|o|x}|{o||x}"];
40[shape=record,label="{x|o|o}|{x|x|}|{x||o}"];
41[shape=record,label="{o|x|x}|{x|x|o}|{o||}"];
42[shape=record,label="{o||x}|{x|x|x}|{o|o|}"];
43[shape=record,label="{x||o}|{o|o|x}|{x|o|x}"];
44[shape=record,label="{x|o|o}|{o|o|x}|{x||x}"];
45[shape=record,label="{o|x|x}|{x|x|o}|{o|o|}"];
46[shape=record,label="{o|x|x}|{x|x|o}|{o||o}"];
47[shape=record,label="{x|x|o}|{o|o|x}|{x|o|x}"];
48[shape=record,label="{x|o|o}|{o|o|x}|{x|x|x}"];
49[shape=record,label="{o|x|x}|{x|x|o}|{o|o|x}"];
50[shape=record,label="{o|x|x}|{x|x|o}|{o|x|o}"];
1->2;
1->3;
2->4[label="win"];
2->5[label="win"];
2->6;
3->7[label="win"];
3->8;
5->9;
5->12[label="drow possible",style="dashed"];
6->10;
7->11;
4->11;
8->12;
9->13;
9->14;
10->15;
10->16;
11->17;
11->18;
12->19;
12->20;
13->21;
14->22;
15->23;
16->24;
17->25;
18->26;
19->27;
20->28;
22->29;
23->30;
24->31;
24->32;
25->33;
27->34;
27->35;
29->36;
30->37;
31->38;
32->39;
33->40;
34->41;
35->42;
38->43;
38->44;
41->45;
41->46;
43->47;
44->48;
45->49;
46->50;
}
Fractaler 17:16, 21 сентября 2009 (UTC)
Да, конечно. Я думал, может быть кто-нибудь знает, какой нужно подставить тэг, чтобы википедия сразу отображала граф. Но так тоже ничего. Clothclub 04:24, 3 октября 2009 (UTC)
Насчет анализа[править код]
Почему нет ветки когда крестики изначально могут сходить на сторону поля, а только либо в центр или в угол?
--- Там написано, что крестики ходят всегда рационально, а в алгоритме первый ход крестиками на сторону не считается рациональным.
- Во-первых, там это не написано; во-вторых, из каких соображений определяется рациональность хода крестиков? Вообще, мне совершенно непонятно из каких соображений построен приведённый алгоритм: если - показать все возможные безошибочные партии для крестиков, то он явно неполный; если как пример оптимальной стратегии для крестиков, то он явно избыточный. В рисунке тоже содержатся ошибки. Например, после ходов: 1. Xa3; 0b3 стрелочка ведёт к положению, где крестики находятся на a1 и b2, а нолик всё на том же b3. Такое положение физически не может получится после данных ходов, даже если отразить или повернуть игровое поле. 217.172.18.157 07:40, 31 мая 2011 (UTC)
- Видимо примеры оптимальной стратегии для крестиков при рациональном сопротивлении ноликов. --S.J. 11:02, 31 мая 2011 (UTC)
- Во-первых, там это не написано; во-вторых, из каких соображений определяется рациональность хода крестиков? Вообще, мне совершенно непонятно из каких соображений построен приведённый алгоритм: если - показать все возможные безошибочные партии для крестиков, то он явно неполный; если как пример оптимальной стратегии для крестиков, то он явно избыточный. В рисунке тоже содержатся ошибки. Например, после ходов: 1. Xa3; 0b3 стрелочка ведёт к положению, где крестики находятся на a1 и b2, а нолик всё на том же b3. Такое положение физически не может получится после данных ходов, даже если отразить или повернуть игровое поле. 217.172.18.157 07:40, 31 мая 2011 (UTC)
Дерево игровых ситуаций[править код]
Почему в заголовке рисунка стоит "Полное дерево игровых ситуаций", когда оно явно не полное?217.172.18.157 06:39, 31 мая 2011 (UTC)
Варианты правил игры[править код]
Чтобы не было каши в голове, советую изредка посматривать на разновидности правил. То, что сейчас написано в разделе «Более длинные линии» — просто ужас, вызванный полным непониманием различий. Manslay 01:58, 28 сентября 2012 (UTC)
Более длинные линии - n в ряд[править код]
Утверждение про ничейную смерть для 6 в ряд и существование стратегии достижения ничьей вторым игроком — весьма сильное утверждение. Насколько я помню, для 9 и более срабатывает элементарная стратегия полей соответствия, для 8 есть более сложная стратегия, но даже для 7 в ряд нет (не было?) чистого доказательства. Игроки гомоку нутром чуют, конечно, что 6 в ряд при оптимальной защите противника — недостижимая задача, но не надо это путать с математически точным доказательством наличия ничейной стратегии. Надо либо указать источник, либо изменить формулировку. --Renju player 07:48, 30 января 2013 (UTC)
Дореволюционные названия[править код]
Давайте обсудим названия. Почему очерк Лейкина «Учебный день в немецкой школе» не является АИ? Потому что он уже переведён на современный язык, и вполне вероятно, что при этом «херики-оники» стали «крестиками-ноликами». Я нашёл исходное издание девятнадцатого века, посмотрю написание в нём. Аналогично Гиляров-Платонов, но для него исходного издания найти не удалось. --Renju player 08:17, 18 ноября 2013 (UTC)
- ни на какой "современный язык" Лейкин быть переведён не мог, потому что Лейкин изначально писал на нём. Современный русский язык (СРЛЯ) - это тот язык, на котором ещё не писал Тредиаковский, но уже писал Пушкин, граница проходит примерно по Державину. См. статью Русский язык#Современный русский язык.
- в гугль-книгах легко находится скан второго тома книги Лейкина "Повѣсти, разсказы и драматическія сочиненія", напечатанного в 1871 году, в котором на 30 странице, в очерке "Учебный день в немецкой школе", и содержится упоминание "крестиков и ноликов". Там же, в гугль-книгах, доступен скан номера "Отечественных записок" за декабрь 1866 года, где на странице 531 напечатан тот же очерк, игра "крестики и нолики" упомянута на 552 стр. То же самое касается Гилярова-Платонова. А ещё в 1885 году вышла целая математическая статья "Игра въ крестики и нулики" за авторством Воронихина.
- даже если вдруг Лейкин и Гиляров-Платонов не являлись бы АИ, это никак не оправдывало бы орисс, будто название "херики-оники" существовало именно до реформы. Во-первых, легко убедиться в гугль-книгах, что и через десятилетия после реформы такое название изредка использовалось. Во-вторых, в словаре Даля ничего о реформе по понятным причинам не говорится. Зато в нём, прямо рядом с "хериками", упоминаются и "крестики". А вот "херики-оники" как раз не упоминаются вовсе.
- Реформы орфографии были реформировали, разумеется, лишь орфографию и напрямую не затрагивали лексику. Реформа правописания 1917-18 годов тут вообще ни к селу ни к городу, поскольку не затрагивала названия букв. Вот текст закона. Буквы х и о в учебниках стали называться просто "ха" и "о" вместо "хер" и "он" ещё в середине XIX века, причём процесс пошёл с XVIII века, подробнее см. в Названия букв русского алфавита#История применения.
131.107.192.225 20:32, 18 ноября 2013 (UTC)
- Всё верно, действительно упоминаются крестики-нолики (а не херики-оники) у Лейкина. Был неправ. В свете этого просьба: не могли бы вы переписать историю наименования целиком, чтобы она была корректна? --Renju player 15:08, 19 ноября 2013 (UTC)