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

Discussion in 'Болталка' started by nonamez, 4 Dec 2009.

  1. nonamez

    nonamez Elder - Старейшина

    Joined:
    22 Jul 2007
    Messages:
    565
    Likes Received:
    265
    Reputations:
    17
    Есть ли како-нибудь алгоритм,при котором в любом случаии можно выиграть,если ты начинаешь ход?
     
  2. petryxa

    petryxa Banned

    Joined:
    16 Apr 2009
    Messages:
    0
    Likes Received:
    66
    Reputations:
    2
    есть! но счас я его уже не помню!!!
     
  3. Morozil_nikЁ

    Morozil_nikЁ Member

    Joined:
    25 Oct 2009
    Messages:
    0
    Likes Received:
    90
    Reputations:
    33
  4. nonamez

    nonamez Elder - Старейшина

    Joined:
    22 Jul 2007
    Messages:
    565
    Likes Received:
    265
    Reputations:
    17
    я что-то не вижу,что бы в конечном итоге было зачеркнуто 3 фигурки...
     
  5. MaTpOc

    MaTpOc Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    ХЗ
    по моей системе нужно ставить 0 или х в центре, так больше шанс выйграть, а вообще он составляет 99.9% а 0.01% это онли внимательность. Но есть минус, это когда противник ставит первым в центре свой символ ну или когда он тебя раскусил...
     
  6. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    я юзаю свой алгоритм =\ Я либо выигрываю либо ничья, вот
    айда в крестики нолики по сетке
    P.S. ТС, ты тоже в вконтакте нащёл ту гаму в крестики нолики на голоса? :D
    Такой системой 1 из 2х раз я тебя выиграю :)
     
  7. nonamez

    nonamez Elder - Старейшина

    Joined:
    22 Jul 2007
    Messages:
    565
    Likes Received:
    265
    Reputations:
    17
    Та не,я против компа хочу попробовать-нашел там один на местном сайте.
     
  8. aka_zver

    aka_zver Elder - Старейшина

    Joined:
    17 Sep 2009
    Messages:
    471
    Likes Received:
    330
    Reputations:
    73
    я с компом иногда играю, получается иногда на ходу придумать
    З.Ы. нате вам крестики-нолики - ссыль
     
  9. Ma[x]

    Ma[x] Member

    Joined:
    31 Dec 2009
    Messages:
    0
    Likes Received:
    6
    Reputations:
    0
    У меня есть маленький алгоритм работающий на 80% всё роскажу в лс в чате.
     
  10. White_Star

    White_Star Active Member

    Joined:
    12 May 2009
    Messages:
    5
    Likes Received:
    138
    Reputations:
    38
    ты алгоритмы на все приложения Вк продаешь?о_О
     
  11. shuba

    shuba Elder - Старейшина

    Joined:
    22 May 2009
    Messages:
    593
    Likes Received:
    129
    Reputations:
    52
    Пончике, гоу в крестики нолеке
     
  12. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    Кидаю исходники- алгоритм сам ищи (автор Номер- он их когдато здесь выкладывал)


    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'])) != && !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>');    ?>
     
  13. Aikaram

    Aikaram Elder - Старейшина

    Joined:
    8 Jun 2009
    Messages:
    146
    Likes Received:
    256
    Reputations:
    42
    Давно использовал такой:
    -По середине крестик.
    -Левый нижний угол.
    -Правый нижний угол.

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

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

    UnDRaux Elder - Старейшина

    Joined:
    21 Nov 2007
    Messages:
    180
    Likes Received:
    751
    Reputations:
    70
    системы нет, при желании можно не дать первому ходившему ни разу выиграть хоть из тысячи попыток. можете сами убедится в этом.
     
  15. ZhekO

    ZhekO New Member

    Joined:
    21 Jun 2009
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    +100500)))
    если оба соперника не дураки, и довольно-таки внимательны, то в любом случае будет ничья...а универсального алгоритма нет;)

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