Best Utility

最高のユーティリティ

受賞者:Mary Ann (Mark) Horton

引用元:https://www.ioccc.org/1994/horton.c

審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1994/horton.hint

動作

3次関数を端末で描画。y=x^3を描いた例。

$ gcc -o horton horton.c

$ ./horton 1 0 0 0


         r------------------------------------------------------------r-----,
         |                                                           j'     |
         |                                                          ,I      |
         |                                                         .F       |
         |                                                        ./        |
         |                                                       ./         |
         |                                                      ,'          |
         |                                                    ,/`           |
         |                                                ._j'`             |
         |                                   .,-r----'"""""                 |
         |                                 ,/"                              |
         |                               ./`                                |
         |                              j'                                  |
         |                             ;'                                   |
         |                            j'                                    |
         |                           ,'                                     |
         |                          .F                                      |
         |                          /                                       |
         """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`



y=5x^2を描いた例。

$ ./horton 0 5 0 0


         r---------------------,r-----------------------------------------x-,
         |                      Y,                                       /' |
         |                       '\                                    ./`  |
         |                         \,                                 ;'    |
         |                          '\.                             ,/`     |
         |                            `\.                         .r`       |
         |                              `\.                     ,r'         |
         |                                "v,.               .r'`           |
         |                                   "--,_       _:j'`              |
         |                                       '"""'"""                   |
         |                                                                  |
         |                                                                  |
         |                                                                  |
         |                                                                  |
         |                                                                  |
         |                                                                  |
         |                                                                  |
         |                                                                  |
         """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`



y=50xを描いた例。

$ ./horton 0 0 50 0


         r---------------------------------------------------------------,r-,
         |                                                             ,j'  |
         |                                                          .r/`    |
         |                                                        ,j'       |
         |                                                     .r/`         |
         |                                                   ,j'            |
         |                                                .,/`              |
         |                                              _/'                 |
         |                                           .,/`                   |
         |                                         _/'                      |
         |                                      .,/`                        |
         |                                    ./'                           |
         |                                  ,/"                             |
         |                               ./'`                               |
         |                             ,/"                                  |
         |                          ./'`                                    |
         |                        ,/"                                       |
         |                     ./'`                                         |
         """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`



解説

サブキャラクターレンダリング(高解像度な描画バッファを用意して、いくつかのピクセルをグルーピングして、似た形の文字を使って表現する)によってグラフを表現する。

コードは3の形状。3次関数だからだろうか。