Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $cols = $rows = $min = $max = 0;
- //w komentarzu dobre nazwy zmiennych. nazwy pozamieniane na koniec zeby zmniejszyc ilosc zmiennych
- $code = $argv[1];
- $rect_size = strlen($code); //$codelen
- $max_min = $rect_size; //$thismodfib
- $c_counter = 0; //$modfib1
- $to_break = 0; //$parameter
- for($i = 0; $i < $rect_size; $i++)
- {
- $max_min = ($max_min + $c_counter)%36;
- $c_counter = ($max_min - $c_counter)%36;
- $rect1 = ord($code{$i});
- //przejscie z ascii do indeksow alfabetu
- if($rect1 >= 97) $rect1 = ($rect1 - 96 - $max_min)%36;
- elseif($rect1 >= 65) $rect1 = ($rect1 - 64 - $max_min)%36;
- else $rect1 = ($rect1 - 21 - $max_min)%36;
- if($rect1 < 0) $rect1 = 36 + $rect1;
- if($rect1 == 1)$to_break = 2;
- elseif($rect1 == 11)$to_break = 0;
- elseif($rect1 == 23)$to_break = 1;
- elseif($rect1 == 26)$to_break = 3;
- elseif($rect1 > 26 && $to_break >= 0)
- {
- if($to_break == 0)$cols = $cols*10 + $rect1-27;
- if($to_break == 1)$rows = $rows*10 + $rect1-27;
- if($to_break == 2)$min = $rect1-27;
- if($to_break == 3)$max = $rect1-27;
- }
- else $to_break = -1;
- }
- $rect_size = $cols*$rows;
- $max_min = $max - $min + 1;
- $c_counter = 0;
- $to_break = $cols;
- $rect1 = ' '; $rect2 = ''; $rect3 = ' ';
- $pos = 0; $pos_c = 1; $rect3_pos = $cols * ($rows-1); $rect3_pos_c = -1*$cols;
- for($i = 0; $i < $rect_size; $i++)
- {
- $rect1{$pos} = $rect3{$rect3_pos} = $min + $i%($max_min);
- if(($i+1)%$rows == 0)
- {$rect3_pos_c *= -1; $rect3_pos++;}
- else
- $rect3_pos += $rect3_pos_c;
- $to_break--;
- if($to_break === 0)
- {
- if($pos_c === 1){$pos_c = $cols; $c_counter++; $to_break = $rows - $c_counter;}
- elseif($pos_c > 1){$pos_c=-1; $to_break = $cols - $c_counter;}
- elseif($pos_c === -1){$pos_c=-1*$cols; $c_counter++; $to_break = $rows - $c_counter;}
- else{$pos_c = 1; $to_break = $cols - $c_counter;}
- }
- $pos += $pos_c;
- }
- echo chunk_split($rect1, $cols, "\n"),"\n";
- echo chunk_split($rect3, $cols, "\n"),"\n";
- for($i=$min;$i<=$max;$i++) $rect2 .= $i;
- echo chunk_split(strrev(substr(str_repeat($rect2,ceil($rect_size/$max_min)),0,$rect_size)),$cols,"\n"),"\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement