ХЗ по моей системе нужно ставить 0 или х в центре, так больше шанс выйграть, а вообще он составляет 99.9% а 0.01% это онли внимательность. Но есть минус, это когда противник ставит первым в центре свой символ ну или когда он тебя раскусил...
я юзаю свой алгоритм =\ Я либо выигрываю либо ничья, вот айда в крестики нолики по сетке P.S. ТС, ты тоже в вконтакте нащёл ту гаму в крестики нолики на голоса? Такой системой 1 из 2х раз я тебя выиграю
Кидаю исходники- алгоритм сам ищи (автор Номер- он их когдато здесь выкладывал) PHP: <?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, ' ')" id="1"><?php if(in_array(1, $_SESSION['x'])) { echo('X'); } elseif(in_array(1, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td> <td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="2"><?php if(in_array(2, $_SESSION['x'])) { echo('X'); } elseif(in_array(2, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td> <td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="3"><?php if(in_array(3, $_SESSION['x'])) { echo('X'); } elseif(in_array(3, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></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, ' ')" id="4"><?php if(in_array(4, $_SESSION['x'])) { echo('X'); } elseif(in_array(4, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></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, ' ')" id="5"><?php if(in_array(5, $_SESSION['x'])) { echo('X'); } elseif(in_array(5, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></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, ' ')" id="6"><?php if(in_array(6, $_SESSION['x'])) { echo('X'); } elseif(in_array(6, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td> </tr><tr> <td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="7"><?php if(in_array(7, $_SESSION['x'])) { echo('X'); } elseif(in_array(7, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td> <td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="8"><?php if(in_array(8, $_SESSION['x'])) { echo('X'); } elseif(in_array(8, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></td> <td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, ' ')" id="9"><?php if(in_array(9, $_SESSION['x'])) { echo('X'); } elseif(in_array(9, $_SESSION['o'])) { echo('O'); } else { echo(' '); } ?></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>'); ?>
Давно использовал такой: -По середине крестик. -Левый нижний угол. -Правый нижний угол. Эта комбинация может быть перевернута по разному, но если после того как ты поставил эти три крестика, то открывается: -нижняя середина -левый верхний угол. // следи при этом на нолики соперника, а то некоторые зацикливаются на своей комбинации и не видят, что соперник просто тупо ставит нолики.
системы нет, при желании можно не дать первому ходившему ни разу выиграть хоть из тысячи попыток. можете сами убедится в этом.
+100500))) если оба соперника не дураки, и довольно-таки внимательны, то в любом случае будет ничья...а универсального алгоритма нет кто не верит, вперёд его искать)