Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $str='SELAMAT_DATANG_DI_HALAMAN_INI';
- $aTxt=array(microtime());
- $len = strlen($str);
- $aTxt[]="panjang:{$len}";
- $iSize= ceil( pow($len, .5 ));
- $aTxt[]="square:{$iSize}";
- $arKotak=array();
- for($i=0;$i<$iSize;$i++){
- for($j=0;$j<$iSize;$j++){
- $arKotak[$i][$j]=NULL;
- }
- }
- $aTxt[]="isi kotak";
- for($i=0;$i<$iSize;$i++){
- $s=$i.' =>';
- for($j=0;$j<$iSize;$j++){
- $s.=$arKotak[$j][$i]."\t";
- }
- $aTxt[]=$s;
- }
- $stepH=1;
- $stepV=0;
- $X=$Y=0;
- for($i=0;$i<$len;$i++){
- $aTxt[]=$str[$i]."\t $X $Y\t$stepH $stepV ";
- $arKotak[$X][$Y]=$str[$i];
- if($stepH!=0){
- $X+=$stepH;
- }
- if($stepV!=0){
- $Y+=$stepV;
- }
- $change=FALSE;
- /*
- if(!isset($arKotak[$X][$Y])){
- $aTxt[]='not set '.$X.'-'. $Y;
- }
- */
- if($X>=$iSize||$Y>=$iSize){
- $aTxt[]='to big '.$X.'|'. $Y;
- $change=TRUE;
- }
- if($i>$iSize){
- if($X<0||$Y<0){
- $aTxt[]='to small '.$X.'|'. $Y;
- $change=TRUE;
- }
- }
- if($arKotak[$X][$Y]!=NULL){
- $aTxt[]='not null';
- $change=TRUE;
- $X-=$stepH;
- $Y-=$stepV;
- }
- if($change){
- // $aTxt[]=$str[$i]."\tis not null ato tidak ada ->".$arKotak[$X][$Y];
- $aTxt[]="(b)post $X $Y $stepH $stepV";
- if($X>=$iSize){
- $X=$iSize-1;
- }elseif($X< 0){
- $X=0;
- }
- if($Y>=$iSize){
- $Y=$iSize-1;
- }elseif($Y< 0){
- $Y=0;
- }
- $aTxt[]="(b)post $X $Y $stepH $stepV";
- if($stepH!=0){
- if($stepH==1){
- $stepV=1;
- }else{
- $stepV=-1;
- }
- $stepH=0;
- $aTxt[]="(h)post $X $Y $stepH $stepV";
- }elseif($stepV!=0){
- if($stepV==1){
- $stepH=-1;
- }else{
- $stepH=1;
- }
- $stepV=0;
- $aTxt[]="(v)post $X $Y $stepH $stepV";
- }
- if($stepH!=0){
- $X+=$stepH;
- }
- if($stepV!=0){
- $Y+=$stepV;
- }
- }
- $aTxt[]="(e)post $X $Y $stepH $stepV";
- }
- //beri Q tempat yg kosong
- for($i=0;$i<$iSize;$i++){
- for($j=0;$j<$iSize;$j++){
- if($arKotak[$i][$j]==NULL)
- $arKotak[$i][$j]='Q';
- }
- }
- $aTxt[]="isi kotak";
- for($i=0;$i<$iSize;$i++){
- $s=$i.' =>';
- for($j=0;$j<$iSize;$j++){
- $s.=$arKotak[$j][$i]."\t";
- }
- $aTxt[]=$s;
- }
- $aTxt[]='<pre>'.print_r($arKotak,1).'</pre>';
- echo '<pre>'.implode("\n",$aTxt).'</pre>';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement