Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Крестики нолики
 
 автор: pavluxa09   (15.06.2012 в 15:58)   письмо автору
 
 

Здравствуйте. Помогите пожалуйста как эти все условия записать проще через вложенные циклы??

$gameWinner = null;
        if( $game['board'][0][0] == $game['board'][1][0] && $game['board'][1][0] == $game['board'][2][0] && $game['board'][2][0] != 0 )
            $gameWinner = $game['board'][0][0];
        else if( $game['board'][0][1] == $game['board'][1][1] && $game['board'][1][1] == $game['board'][2][1] && $game['board'][2][1] != 0 )
            $gameWinner = $game['board'][0][1];
        else if( $game['board'][0][2] == $game['board'][1][2] && $game['board'][1][2] == $game['board'][2][2] && $game['board'][2][2] != 0 )
            $gameWinner = $game['board'][0][2];
        else if( $game['board'][0][0] ==  $game['board'][0][1] && $game['board'][0][1] == $game['board'][0][2] && $game['board'][0][2] != 0 )
            $gameWinner = $game['board'][0][0];
        else if( $game['board'][1][0] ==  $game['board'][1][1] && $game['board'][1][1] == $game['board'][1][2] && $game['board'][1][2] != 0 )
            $gameWinner = $game['board'][1][0];
        else if( $game['board'][2][0] ==  $game['board'][2][1] && $game['board'][2][1] == $game['board'][2][2] && $game['board'][2][2] != 0 )
            $gameWinner = $game['board'][2][0];
        else if( $game['board'][0][0] == $game['board'][1][1] && $game['board'][1][1] == $game['board'][2][2] && $game['board'][2][2] != 0 )
            $gameWinner = $game['board'][1][1];
        else if( $game['board'][2][0] == $game['board'][1][1] && $game['board'][1][1] == $game['board'][0][2] && $game['board'][0][2] != 0 )
            $gameWinner = $game['board'][1][1];

  Ответить  
 
 автор: speedsoft   (18.06.2012 в 01:52)   письмо автору
 
   для: pavluxa09   (15.06.2012 в 15:58)
 


$gameWinner = null; 
$gb=$gb;
for ($x=0; $x<=2; $x++){
    //проверка столбцов
    if( $gb[0][$x] == $gb[1][$x] && $gb[1][$x] == $gb[2][$x] && $gb[2][$x] != 0 ){
            $gameWinner = $gb[0][$x]; 
            break;
    }
    
    //Проверка строк
    if( $gb[$x][0] == $gb[$x][1] && $gb[$x][1] == $gb[$x][2] && $gb[$x][2] != 0 ){
            $gameWinner = $gb[$x][0]; 
            break;
    }    
}

if (is_null($gameWinner)){        
        if (($gb[0][0] == $gb[1][1] && $gb[1][1] == $gb[2][2] && $gb[2][2] != 0 )|| 
           ( $gb[2][0] == $gb[1][1] && $gb[1][1] == $gb[0][2] && $gb[0][2] != 0 )) 
            $gameWinner = $gb[1][1]; 
}


примерно вот так. правда писал прям сюда. Возможно лучше было 2бы разбить первый цикл на 2а, чтобы не проверять лишнее. но тогда кода будет побольше, хотя чуть оптимизированее в некоторых случаях. Но думаю пищи для дальнейшего размышления хватит

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования