All pastes #762102 Raw Edit

Something

public php v1 · immutable
·published 2007-11-05 11:10 UTC
rendered paste body
<?php$N = 4;$data = array();for ( $i = 0; $i < $N; $i ++ ){	$data[ $i ] = array();	for ( $j = 0; $j < $N; $j ++ )	{		$data[ $i ][ $j ] = 0;	}	}process_data( $data );print_data( $data );function process_data( &$data ){	$N = count( $data );		// min/max wiersz	$w0 = 0;	$w1 = $N-1;		// min max kolumna	$k0 = 0;	$k1 = $N-1;		// $i - wiersze	// $j - koluny	$data[0][0] = 1;	$c = 2;	while ( true )	{		$j = $k0;		$i = $w0;				ps( $i, $j, $w0, $w1, $k0, $k1 );		// w prawo		for ( $i = $w0+1; $i <= $w1; $i++ )		{			$data[ $j ][ $i ] = $c;			$c++;		}		ps( $i, $j, $w0, $w1, $k0, $k1 );		$w0++;		$i = $w1;								// w dol		for ( $j = $k0+1; $j <= $k1; $j++ )		{			$data[ $j ][ $i ] = $c;			$c++;		}				$k1--;		$j = $k1;				ps( $i, $j, $w0, $w1, $k0, $k1, "w lewo" );		// w lewo		for ( $i = $w1; $i >= $w0; $i-- )		{			$data[ $j ][ $i ] = $c;			$c++;		}		ps( $i, $j, $w0, $w1, $k0, $k1 );		break;	}}function ps( $i, $j, $w0, $w1, $k0, $k1, $msg = "" ){	print( '<pre>');	print( "====================<br />" );	print( $msg . "<br />" );	printf( "i = %d; j = %d<br />", $i, $j );	printf( "w0 = %d; w1 = %d<br />", $w0, $w1 );	printf( "k0 = %d; k1 = %d<br />", $k0, $k1 );	print( '</pre>');}function print_data( $data ){	print( '<pre>' );	$N = count( $data );	for ( $i = 0; $i < $N; $i ++ )	{		for ( $j = 0; $j < $N; $j ++ )		{			printf( "%4d ", $data[ $i ][ $j ] );		}				print( "<br />" );	}	print( '</pre>' );}?>