|
|
|
| Здравствуйте, уважаемые форумчане. Уже третий час пытаюсь объеденить эти два цикла, но что то голова вообще не варит. Помогите пожалуйста.
for( $iY = 0; $iY < $aGame['boardSize']; $iY++ ) {
$aCounters = array( 0, 0, 0 );
for( $iX = 0; $iX < $aGame['boardSize']; $iX++ )
$aCounters[$aGame['board'][$iY][$iX]]++;
if( $aCounters[1] >= $aGame['boardLength'] ) {
$iWinner = 1;
break;
}
else if( $aCounters[2] >= $aGame['boardLength'] ) {
$iWinner = 2;
break;
}
}
for( $iX = 0; $iX < $aGame['boardSize']; $iX++ ) {
$aCounters = array( 0, 0, 0 );
for( $iY = 0; $iY < $aGame['boardSize']; $iY++ )
$aCounters[$aGame['board'][$iY][$iX]]++;
if( $aCounters[1] >= $aGame['boardLength'] ) {
$iWinner = 1;
break;
}
else if( $aCounters[2] >= $aGame['boardLength'] ) {
$iWinner = 2;
break;
}
}
$aCounters = array( 0, 0, 0 );
for( $i = 0; $i < $aGame['boardSize']; $i++ )
$aCounters[$aGame['board'][$i][$i]]++;
if( $aCounters[1] >= $aGame['boardLength'] )
$iWinner = 1;
else if( $aCounters[2] >= $aGame['boardLength'] )
$iWinner = 2;
$aCounters = array( 0, 0, 0 );
for( $i = 0; $i < $aGame['boardSize']; $i++ )
$aCounters[$aGame['board'][$aGame['boardSize'] - 1 - $i][$i]]++;
if( $aCounters[1] >= $aGame['boardLength'] )
$iWinner = 1;
else if( $aCounters[2] >= $aGame['boardLength'] )
$iWinner = 2;
|
| |
|
|
|
|
|
|
|
для: pavluxa09
(23.06.2012 в 11:23)
| | Эти два, это какие? Вот этот
for( $iY = 0; $iY < $aGame['boardSize']; $iY++ )
| и этот
for( $iX = 0; $iX < $aGame['boardSize']; $iX++ ) {
| Они по разным координатам идут? | |
|
|
|
|
|
|
|
для: cheops
(23.06.2012 в 11:46)
| | Получается не два а четыре, это логика определения победителя в игре Крестики нолики. | |
|
|
|
|
|
|
|
для: pavluxa09
(23.06.2012 в 15:50)
| | И вы хотите свернуть матричные вычисления в один цикл? Можно конечно, но вам придется умножать размерность X на Y и вводить индекс вида I = RowX * Num + RowY... в общем, программа изрядно усложниться, хотя вероятно вы сможете увеличить скорость её работы (цель именно в этом?). | |
|
|
|
|
|
|
|
для: cheops
(24.06.2012 в 07:04)
| | Да, именно в этом | |
|
|
|
|
|
|
|
для: pavluxa09
(24.06.2012 в 10:45)
| | Это проверка горизонтальных и вертикальных рядов? Тут в любом случае будет два набора циклов, я бы вообще все так и оставил. | |
|
|
|