用 Ruby 生成迷宫

发布于 2024-12-10 01:10:54 字数 336 浏览 1 评论 0原文

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

Jamis Buck 的演示

我想实现一些算法,然后生成图像迷宫的文件。

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

也许很快的某个时候,我也希望将整个东西作为一个 Ruby on Rails Web 应用程序。

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

I have been working on polishing my Ruby skills lately and came across a nice snazzy presentation on maze generation.

Presentation by Jamis Buck

I would want to implement a couple of algorithms and then generate image files for the mazes.

I am quite unsure on the second part of the job: "generating image of the maze". I want a simple gem that lets me map my mazes to image.

Maybe sometime soon I would also want the whole thing as a Ruby on Rails application for the web.

How can I put all of it together?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

拒绝两难 2024-12-17 01:10:54

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

chunky_png gem is definitely a thing that worth trying out.

你曾走过我的故事 2024-12-17 01:10:54

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

It's very easy using 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')
风追烟花雨 2024-12-17 01:10:54

时间继续前进。贾米斯·巴克 (Jamis Buck) 现在在实用书架上完成了一本名为《程序员的迷宫》的书。我认为这是您有关 Ruby 和 Maze 的参考资料。

Time moves on. Jamis Buck has now completed a book called 'mazes for programmers' on the pragmatic bookshelf. I think this is your go to reference for Ruby and Mazes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文