Best Output

最高の出力

受賞者:Carlos Duarte

引用元:https://www.ioccc.org/1995/cdua.c

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

動作

迷路を生成し、それを探索によって解くプログラム。

$ gcc -o cdua cdua.c

$ ./cdua
 #############################################################################
 #       ###############   #   ###           #################################
 # ##### ############### # # # ### ######### #################################
 # #####       #         #   #       #   #   #################################
 # ########### # ##################### # # ###################################
 # #     #   #   #   #             #   #   ###################################
 # # ### # # ##### # ### ######### # #########################################
 #   ###   #   #   #     ###     # #     #####################################
 ############# ### ######### ### # ##### #####################################
 ############# #   ######### ###   #   # #####################################
 ############# # ########### ####### # # #####################################
 #############   ###########     #   # # #####################################
 ############################### # ### #######################################
 #################   ########### # ###   #####################################
 ################### ########### # ##### #####################################
 ###################     ####### #   ### #####################################
 ####################### ####### ### ### #####################################
 #####################   #   ###     ###   ###################################
 ##################### ### # ############# ###################################
 #####################     #               ###################################
 #############################################################################

生成完了。

<RET> to begin...
 #############################################################################
 #                     #   #     #           #     #   #     #               #
 # ##### ############### # # # ### ######### # ### ### # # ### # ########### #
 # #   #       #         #   #       #   #   #   #   #   #     # #   #   # # #
 # ### ####### # ##################### # # ### # ### ### ####### # # # # # # #
 # #     #   #   #   #             #   #   #   #   #   # #     # # #   # # # #
 # # ### # # ##### # ### ######### # ############# ### # # # # # # ##### # # #
 #   # #   #   #   #     # #     # #     #     #   #   # # # # # # # #   #   #
 ##### ####### ### ####### # ### # ##### # ### # ### ### ### # # # # # ### ###
 #   #     # # #   #       # # #   #   # #   #   # # #     # # #   # # # #   #
 # # # # # # # # ### ##### # # ##### # # ### ##### # ##### # ##### # # # ### #
 # #   # #   #   #   #     #     #   # # #   #     #     #   #   #   # #     #
 # ##### ######### ### ######### # ### ### ### ### ##### ### # # ### # #######
 #   # #             #     #   # # #     # #     #   #   #   # # #   #       #
 ### # ############# ##### ### # # ##### # ######### # ####### # # ######### #
 #   #         #   #     #     # #   # # #   #     # # #   #   # # #     #   #
 # ### ##### # ### ##### ##### # ### # # ### # ### # # # # # ### ### ### # # #
 #   #   #   #       #   #   # #     # #   #     # # #   #   # #     # # # # #
 ### ##### ######### # ### # ######### ### ####### # ######### ####### # # # #
 #         #         #     #                       #                       # #
 #############################################################################

Enterを押すと生成された迷路を解く。

Walking...
 #############################################################################
 #.......              #...#...  #...........#     #   #     #               #
 # #####.###############.#.#.#.###.#########.# ### ### # # ### # ########### #
 # #   #.......#.........#...#.....  #   # ..#   #   #   #     # #   #   # # #
 # ### #######.#.##################### # # ### # ### ### ####### # # # # # # #
 # #     #   #...#   #             #   #   #   #   #   # #     # # #   # # # #
 # # ### # # ##### # ### ######### # ############# ### # # # # # # ##### # # #
 #   # #   #   #   #     # #     # #     #     #   #   # # # # # # # #   #   #
 ##### ####### ### ####### # ### # ##### # ### # ### ### ### # # # # # ### ###
 #   #     # # #   #       # # #   #   # #   #   # # #     # # #   # # # #   #
 # # # # # # # # ### ##### # # ##### # # ### ##### # ##### # ##### # # # ### #
 # #   # #   #   #   #     #     #   # # #   #     #     #   #   #   # #     #
 # ##### ######### ### ######### # ### ### ### ### ##### ### # # ### # #######
 #   # #             #     #   # # #     # #     #   #   #   # # #   #       #
 ### # ############# ##### ### # # ##### # ######### # ####### # # ######### #
 #   #         #   #     #     # #   # # #   #     # # #   #   # # #     #   #
 # ### ##### # ### ##### ##### # ### # # ### # ### # # # # # ### ### ### # # #
 #   #   #   #       #   #   # #     # #   #     # # #   #   # #     # # # # #
 ### ##### ######### # ### # ######### ### ####### # ######### ####### # # # #
 #         #         #     #                       #                       # #
 #############################################################################

ときどき失敗して再度<RET> to begin...になるが、繰り返すとそのうち解ける。

Finished.
 #############################################################################
 #.                    #   #     #           #.....#   #     #               #
 #.##### ############### # # # ### ######### #.###.### # # ### # ########### #
 #.#   #       #         #   #       #   #   #...#...#   #     # #   #   # # #
 #.### ####### # ##################### # # ### #.###.### ####### # # # # # # #
 #.#.....#...#   #...#  ...........#   #   #   #...#...# #     # # #   # # # #
 #.#.###.#.#.#####.#.###.#########.# #############.###.# # # # # # ##### # # #
 #...# #...#...#  .#.....# #.....#.#     #.....#...#...# # # # # # # #   #   #
 ##### #######.###.####### #.###.#.##### #.###.#.###.### ### # # # # # ### ###
 #   #     # #.#...#       #.# #...#...# #...#...# #.#     # # #   # # # #   #
 # # # # # # #.#.### ##### #.# #####.#.# ###.##### #.##### # ##### # # # ### #
 # #   # #   #...#   #     #.....#...#.# #...#     #.....#   #...#   # #     #
 # ##### ######### ### #########.#.###.###.### ### #####.### #.#.### # #######
 #   # #             #     #   #.#.#  ...#.#     #   #...#   #.#.#   #       #
 ### # ############# ##### ### #.#.#####.#.######### #.#######.#.# ######### #
 #   #         #   #     #     #.#...# #.#...#.....# #.#...#...#.# #.....#...#
 # ### ##### # ### ##### ##### #.###.# #.###.#.###.# #.#.#.#.###.###.###.#.#.#
 #   #   #   #       #   #   # #.....# #...#...  #.# #...#...# #.....# #.#.#.#
 ### ##### ######### # ### # ######### ###.#######.# ######### ####### #.#.#.#
 #         #         #     #              .........#                    ...#.#
 #############################################################################
Done!!

解説

コードは、文1つだけからなるmainの再帰。

現代の環境では生成・解答が一瞬で完了してしまうので、適当にusleepを足した。

パッチ

パッチをダウンロード