最近我一直在努力提高我的 Ruby 技能,并且遇到了一个关于迷宫生成的漂亮时髦的演示文稿。
我想实现几个算法,然后为迷宫生成图像文件。
我对工作的第二部分非常不确定:“生成迷宫的图像”。我想要一个简单的宝石,让我可以将我的迷宫映射到图像。
也许不久之后,我还希望将整个事情作为 Web 上的 Ruby on Rails 应用程序。
我怎样才能把所有这些放在一起?
最近我一直在努力提高我的 Ruby 技能,并且遇到了一个关于迷宫生成的漂亮时髦的演示文稿。
我想实现几个算法,然后为迷宫生成图像文件。
我对工作的第二部分非常不确定:“生成迷宫的图像”。我想要一个简单的宝石,让我可以将我的迷宫映射到图像。
也许不久之后,我还希望将整个事情作为 Web 上的 Ruby on Rails 应用程序。
我怎样才能把所有这些放在一起?
使用 RMagick 非常简单:
require 'rubygems'
require 'RMagick'
maze = <<-MAZE
##############
.............#
############.#
#............#
#.#.########.#
#.#..........#
#.############
MAZE
maze = maze.split("\n").map{|line| line.split('')}
square_size = 50
height = maze.size
width = maze.first.size
img_height = height * square_size
img_width = width * square_size
img = Magick::Image.new(img_width, img_height)
img_width.times do |col|
img_height.times do |row|
line_idx = (row/square_size).floor
char_idx = (col/square_size).floor
char = maze[line_idx][char_idx]
color = (char == "#" ? "rgb(0, 0, 0)" : "rgb(255, 255, 255)")
img.pixel_color(col, row, color)
end
end
img.write('maze.png')
chunky_png gem 绝对是值得一试的东西。
时间在前进。Jamis Buck 现在在实用书架上完成了一本名为“程序员迷宫”的书。我认为这是您对 Ruby 和 Mazes 的参考。