Лабиринт Поколение с Рубином - PullRequest
3 голосов
/ 14 октября 2011

В последнее время я работал над совершенствованием своих навыков в Ruby и наткнулся на красивую шикарную презентацию о создании лабиринтов.

Презентация Джеймиса Бака

Я бы хотел реализовать несколько алгоритмов, а затем сгенерировать файлы изображений для лабиринтов.

Я совершенно не уверен в второй части работы: «создание образа лабиринта». Я хочу простой драгоценный камень, который позволяет мне сопоставить мои лабиринты с изображением.

Может быть, в скором времени я бы тоже хотел, чтобы это было приложение Ruby on Rails для Интернета.

Как я могу собрать все это вместе?

Ответы [ 3 ]

3 голосов
/ 14 октября 2011

chunky_png Драгоценный камень определенно стоит попробовать.

3 голосов
/ 14 октября 2011

С помощью 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 голос
/ 21 сентября 2015

Время движется.Джамис Бак завершил книгу «Лабиринты для программистов» на прагматичной книжной полкеЯ думаю, что это ваша ссылка на Ruby и Mazes.

...