PDA

Просмотр полной версии : Крестики-нолики


nonamez
04.12.2009, 22:27
Есть ли како-нибудь алгоритм,при котором в любом случаии можно выиграть,если ты начинаешь ход?

petryxa
04.12.2009, 22:28
есть! но счас я его уже не помню!!!

Morozil_nikЁ
04.12.2009, 22:29
http://upload.wikimedia.org/wikipedia/commons/thumb/1/1f/Tic-tac-toe-full-game-tree-x-rational.jpg/800px-Tic-tac-toe-full-game-tree-x-rational.jpg

nonamez
04.12.2009, 22:43
я что-то не вижу,что бы в конечном итоге было зачеркнуто 3 фигурки...

MaTpOc
04.12.2009, 22:46
ХЗ
по моей системе нужно ставить 0 или х в центре, так больше шанс выйграть, а вообще он составляет 99.9% а 0.01% это онли внимательность. Но есть минус, это когда противник ставит первым в центре свой символ ну или когда он тебя раскусил...

Ponchik
04.12.2009, 22:51
я юзаю свой алгоритм =\ Я либо выигрываю либо ничья, вот
айда в крестики нолики по сетке
P.S. ТС, ты тоже в вконтакте нащёл ту гаму в крестики нолики на голоса? :D
ХЗ
по моей системе нужно ставить 0 или х в центре, так больше шанс выйграть, а вообще он составляет 99.9% а 0.01% это онли внимательность. Но есть минус, это когда противник ставит первым в центре свой символ ну или когда он тебя раскусил...
Такой системой 1 из 2х раз я тебя выиграю :)

nonamez
04.12.2009, 22:52
Та не,я против компа хочу попробовать-нашел там один на местном сайте.

aka_zver
04.12.2009, 23:02
я с компом иногда играю, получается иногда на ходу придумать
З.Ы. нате вам крестики-нолики - ссыль (http://slil.ru/28296263)

Ma[x]
02.01.2010, 13:49
У меня есть маленький алгоритм работающий на 80% всё роскажу в лс в чате.

White_Star
02.01.2010, 14:56
']У меня есть маленький алгоритм работающий на 80% всё роскажу в лс в чате.
ты алгоритмы на все приложения Вк продаешь?о_О
']знаю, 1алгоритм угадует шары на 80% пишите в лс...в чате..росскажу..

shuba
02.01.2010, 15:01
Пончике, гоу в крестики нолеке

Kusto
02.01.2010, 15:15
Кидаю исходники- алгоритм сам ищи (автор Номер- он их когдато здесь выкладывал)


<?php session_start(); echo('<title>Крестки-нолики</title>'); if(!$_SESSION['wins'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['wins'] = 0;} if(!$_SESSION['lose'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['lose'] = 0;} if(!$_SESSION['x']) { $_SESSION['x'] = array(); } if(!$_SESSION['o']) { $_SESSION['o'] = array(); } function session_kill() { unset($_SESSION['x']); unset($_SESSION['o']); } function is_won($array) { if((in_array(1, $array) && in_array(2, $array) && in_array(3, $array)) || (in_array(1, $array) && in_array(4, $array) && in_array(7, $array)) || (in_array(1, $array) && in_array(5, $array) && in_array(9, $array)) || (in_array(2, $array) && in_array(5, $array) && in_array(8, $array)) || (in_array(3, $array) && in_array(6, $array) && in_array(9, $array)) || (in_array(3, $array) && in_array(5, $array) && in_array(7, $array)) || (in_array(4, $array) && in_array(5, $array) && in_array(6, $array)) || (in_array(7, $array) && in_array(8, $array) && in_array(9, $array))) { return true; } else { return false; } } if($_GET['place'] && !in_array($_GET['place'], array_merge($_SESSION['x'], $_SESSION['o'])) && $_GET['place'] < 10 && $_GET['place'] > 0) { $_SESSION['x'][] = $_GET['place']; function rand_place() { if(!in_array(5, $_SESSION['x']) && !in_array(5, $_SESSION['o'])) { return 5; } else { $place = rand(1,9); if(!in_array($place, $_SESSION['x']) && !in_array($place, $_SESSION['o'])) { return $place; } else { return rand_place(); } } } if(count(array_merge($_SESSION['x'], $_SESSION['o'])) != 9 && !is_won($_SESSION['x'])) { if(((in_array(2, $_SESSION['o']) && in_array(3, $_SESSION['o'])) || (in_array(4, $_SESSION['o']) && in_array(7, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(9, $_SESSION['o']))) && !in_array(1, $_SESSION['o']) && !in_array(1, $_SESSION['x'])) { $_SESSION['o'][] = 1; } elseif(((in_array(1, $_SESSION['o']) && in_array(3, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(8, $_SESSION['o']))) && !in_array(2, $_SESSION['o']) && !in_array(2, $_SESSION['x'])) { $_SESSION['o'][] = 2; } elseif(((in_array(1, $_SESSION['o']) && in_array(2, $_SESSION['o'])) || (in_array(6, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(3, $_SESSION['o']) && !in_array(3, $_SESSION['x'])) { $_SESSION['o'][] = 3; } elseif(((in_array(5, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(4, $_SESSION['o']) && !in_array(4, $_SESSION['x'])) { $_SESSION['o'][] = 4; } elseif(((in_array(4, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(2, $_SESSION['o']) && in_array(8, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(5, $_SESSION['o']) && !in_array(5, $_SESSION['x'])) { $_SESSION['o'][] = 5; } elseif(((in_array(4, $_SESSION['o']) && in_array(5, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(9, $_SESSION['o']))) && !in_array(6, $_SESSION['o']) && !in_array(6, $_SESSION['x'])) { $_SESSION['o'][] = 6; } elseif(((in_array(8, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(4, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(7, $_SESSION['o']) && !in_array(7, $_SESSION['x'])) { $_SESSION['o'][] = 7; } elseif(((in_array(7, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(2, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(8, $_SESSION['o']) && !in_array(8, $_SESSION['x'])) { $_SESSION['o'][] = 8; } elseif(((in_array(7, $_SESSION['o']) && in_array(8, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(9, $_SESSION['o']) && !in_array(9, $_SESSION['x'])) { $_SESSION['o'][] = 9; } elseif(((in_array(2, $_SESSION['x']) && in_array(3, $_SESSION['x'])) || (in_array(4, $_SESSION['x']) && in_array(7, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(9, $_SESSION['x']))) && !in_array(1, $_SESSION['x']) && !in_array(1, $_SESSION['o'])) { $_SESSION['o'][] = 1; } elseif(((in_array(1, $_SESSION['x']) && in_array(3, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(8, $_SESSION['x']))) && !in_array(2, $_SESSION['x']) && !in_array(2, $_SESSION['o'])) { $_SESSION['o'][] = 2; } elseif(((in_array(1, $_SESSION['x']) && in_array(2, $_SESSION['x'])) || (in_array(6, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(3, $_SESSION['x']) && !in_array(3, $_SESSION['o'])) { $_SESSION['o'][] = 3; } elseif(((in_array(5, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(4, $_SESSION['x']) && !in_array(4, $_SESSION['o'])) { $_SESSION['o'][] = 4; } elseif(((in_array(4, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(2, $_SESSION['x']) && in_array(8, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(5, $_SESSION['x']) && !in_array(5, $_SESSION['o'])) { $_SESSION['o'][] = 5; } elseif(((in_array(4, $_SESSION['x']) && in_array(5, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(9, $_SESSION['x']))) && !in_array(6, $_SESSION['x']) && !in_array(6, $_SESSION['o'])) { $_SESSION['o'][] = 6; } elseif(((in_array(8, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(4, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(7, $_SESSION['x']) && !in_array(7, $_SESSION['o'])) { $_SESSION['o'][] = 7; } elseif(((in_array(7, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(2, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(8, $_SESSION['x']) && !in_array(8, $_SESSION['o'])) { $_SESSION['o'][] = 8; } elseif(((in_array(7, $_SESSION['x']) && in_array(8, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(9, $_SESSION['x']) && !in_array(9, $_SESSION['o'])) { $_SESSION['o'][] = 9; } else { $_SESSION['o'][] = rand_place(); } } } if(!is_won($_SESSION['x']) && !is_won($_SESSION['o']) && count(array_merge($_SESSION['x'], $_SESSION['o'])) != 9) { ?> <script> function add(element) { if(element.innerHTML != 'O' && element.innerHTML != 'X') { document.location.href = '<?php echo($_SERVER['PHP_SELF']); ?>?place='+element.id; } else { alert('Здесь ставить нельзя'); } } function over(element, str) { if(element.innerHTML != 'O' && element.innerHTML != 'X') { element.innerHTML = ' '+str+' '; } } </script> <?php } ?> <table style="font-size: 40px; text-align: center; cursor: pointer;"> <tr> <td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="1"><?php if(in_array(1, $_SESSION['x'])) { echo('X'); } elseif(in_array(1, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> <td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="2"><?php if(in_array(2, $_SESSION['x'])) { echo('X'); } elseif(in_array(2, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> <td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="3"><?php if(in_array(3, $_SESSION['x'])) { echo('X'); } elseif(in_array(3, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> </tr><tr> <td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="4"><?php if(in_array(4, $_SESSION['x'])) { echo('X'); } elseif(in_array(4, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> <td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="5"><?php if(in_array(5, $_SESSION['x'])) { echo('X'); } elseif(in_array(5, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> <td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="6"><?php if(in_array(6, $_SESSION['x'])) { echo('X'); } elseif(in_array(6, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> </tr><tr> <td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="7"><?php if(in_array(7, $_SESSION['x'])) { echo('X'); } elseif(in_array(7, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> <td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="8"><?php if(in_array(8, $_SESSION['x'])) { echo('X'); } elseif(in_array(8, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> <td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="9"><?php if(in_array(9, $_SESSION['x'])) { echo('X'); } elseif(in_array(9, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td> </tr> </table> <?php if(is_won($_SESSION['x'])) { echo('<font color="Green"><b>Вы выиграли</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>'); session_kill(); $_SESSION['wins']++; } elseif(is_won($_SESSION['o'])) { echo('<font color="Green"><b>Вы проиграли</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>'); session_kill(); $_SESSION['lose']++; } else { if(count(array_merge($_SESSION['x'], $_SESSION['o'])) == 9) { echo('<font color="Green"><b>Ничья</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>'); session_kill(); } } echo('<div style="position: absolute; top: 5%; right: 5%;"><table width="200"><td>Побед:</td><td><b>'.$_SESSION['wins'].'</b></td></tr><tr><td>Проигрышей:</td><td><b>'.$_SESSION['lose'].'</b></td></tr></table><div align="center"><a href="'.$_SERVER['PHP_SELF'].'?clear_score">Очистить счёт</a></div></div></body>'); ?>

Aikaram
02.01.2010, 15:52
Давно использовал такой:
-По середине крестик.
-Левый нижний угол.
-Правый нижний угол.

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

// следи при этом на нолики соперника, а то некоторые зацикливаются на своей комбинации и не видят, что соперник просто тупо ставит нолики.

UnDRaux
02.01.2010, 16:58
системы нет, при желании можно не дать первому ходившему ни разу выиграть хоть из тысячи попыток. можете сами убедится в этом.

ZhekO
08.01.2010, 21:01
+100500)))
если оба соперника не дураки, и довольно-таки внимательны, то в любом случае будет ничья...а универсального алгоритма нет;)

кто не верит, вперёд его искать;))