fork(1) download
  1. <?php
  2.  
  3.  
  4. $phrase = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
  5.  
  6. /*Подсчитываем длину фразы. */
  7. $phraseLength = mb_strlen($phrase);
  8.  
  9. /* Произвольно устанавливаем длину радиуса - вычисляем её опытным путём. Желательно иметь возможность каким-либо образом вычислить длину радиуса из длины фразы. */
  10. $radius = 14.2;
  11.  
  12. /* Создаём массив со вложенными массивами, наполненными ключами и пробелами в значениях. Опытным путём вычислили количество ключей со значениями во вложенных массива. Желательно каким-либо образом вычислить это количество из длины фразы. */
  13. $screen = array();
  14. for ($x = 0; $x < $phraseLength; $x++) {
  15. $screen[$x] = array_fill(0, 75, ' ');
  16. }
  17.  
  18. /* Находим угол между буквами и переводим градусы в радианы. */
  19. $angleBetweenLettersDegrees = 360 / $phraseLength;
  20. $angleBetweenLettersRadians = deg2rad($angleBetweenLettersDegrees);
  21.  
  22. /* Устанавливаем координаты x и y, заполняем многомерный массив $screen буквами в соответствии с этими координатами. Координату y приходится каждый раз множить на определённое опытным путём число, а также прибавлять опять же полученное опытным путём число. К координате x также приходится прибавлять такое число. Желательно каким-либо образом вычислять это всё из имеющихся данных! */
  23. $angle = -1.5;
  24. for ($i = 0; $i < $phraseLength; $i++) {
  25. $y = (round($radius * cos($angle)) * 2.65) + 37;
  26. $x = round($radius * sin($angle)) + 15;
  27. $angle += $angleBetweenLettersRadians;
  28. $screen[$x][$y] = mb_substr($phrase, $i, 1);
  29. }
  30.  
  31. /* Заполненный массивами с пробелами и буквами массив представляем как строки, склеиваем их и выводим одну за другой. */
  32. foreach ($screen as $strings) {
  33. $result = implode('', $strings);
  34. echo "$result\n";
  35. }
  36.  
  37. ?>
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
                                                                           
                          Ю    Я       А       Б                           
                                                    В                      
                  Э                                                        
             Ь                                              Г              
                                                                  Д        
       Ы                                                                   
                                                                           
     Ъ                                                              Е      
                                                                           
                                                                       Ё   
Щ                                                                          
                                                                           
Ш                                                                         Ж
                                                                           
                                                                          З
Ч                                                                          
                                                                           
                                                                          И
Ц                                                                          
                                                                           
  Х                                                                    Й   
                                                                           
                                                                    К      
       Ф                                                                   
                                                               Л           
          У                                                                
                  Т                                       М                
                       С                            Н                      
                               Р     П      О