3

最近我一直在努力提高我的 Ruby 技能,并且遇到了一个关于迷宫生成的漂亮时髦的演示文稿。

杰米斯·巴克的演讲

我想实现几个算法,然后为迷宫生成图像文件。

我对工作的第二部分非常不确定:“生成迷宫的图像”。我想要一个简单的宝石,让我可以将我的迷宫映射到图像。

也许不久之后,我还希望将整个事情作为 Web 上的 Ruby on Rails 应用程序。

我怎样才能把所有这些放在一起?

4

3 回答 3

3

使用 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')
于 2011-10-14T14:03:46.427 回答
3

chunky_png gem 绝对是值得一试的东西。

于 2011-10-14T14:06:36.733 回答
1

时间在前进。Jamis Buck 现在在实用书架上完成了一本名为“程序员迷宫”的书。我认为这是您对 Ruby 和 Mazes 的参考。

于 2015-09-21T10:19:42.150 回答