2011-10-14 36 views
3

我一直在努力研究我的紅寶石技能,並且在迷宮一代中遇到了一個很好的時髦演示。帶紅寶石的迷宮一代

Presentation by Jamis Buck

我想實現一對夫婦的算法,然後生成迷宮的圖像文件。

我很不確定第二部分的工作:「生成迷宮圖像」。我想要一個簡單的寶石,讓我將我的迷宮映射到圖像。

也許不久之後,我還希望整個事情成爲Web上的Ruby on Rails應用程序。

我怎樣才能把所有的東西放在一起?

+0

生成圖像是很容易的部分。我會爲初學者結賬RMagick,但也可能有其他選擇。一旦你有了你的迷宮數據,它應該很容易迭代並輸出圖像。 – muffinista

回答

3

chunky_png寶石無疑是一個值得嘗試的事情。

+0

Jamis實際上使用ChunkyPNG爲其主題的博客文章創建了所有可視化。 – wvanbergen

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') 
1

時間繼續。 Jamis Buck現在已經在實用的書架上完成了一本名爲「程序員迷宮」的書。我認爲這是你去參考Ruby和迷宮。