【问题标题】:Maze Generation with Ruby使用 Ruby 生成迷宫
【发布时间】:2011-10-14 13:07:43
【问题描述】:

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

Presentation by Jamis Buck

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

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

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

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

【问题讨论】:

  • 生成图像是很容易的部分。对于初学者,我会检查 RMagick,但可能还有其他选择。获得迷宫数据后,应该很容易迭代并输出图像。

标签: ruby-on-rails ruby image maze


【解决方案1】:

chunky_pnggem 绝对是值得一试的东西。

【讨论】:

  • Jamis 实际上使用 ChunkyPNG 为他关于该主题的博客文章创建了所有可视化。
【解决方案2】:

使用 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')

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 2019-11-03
      相关资源
      最近更新 更多