2012-10-08 2 views
0

행이 x이고 열이 y 인 인수가있는 눈금을 좌표로 만들 수있는 이미지 생성기를 만들려고합니다. 지금 내가 원하는 것은 좌표계를 제어해야합니다. 명령을 입력하여 프로그램을 호출하고 메소드 호출에 대한 인수도 아래 코드와 같습니다. 작동 시키려면 어떻게해야합니까? 예를 들어, 새로운 이미지 I, 5,6을 생성합니다.명령 줄을 사용하여 루비 프로그램 제어

명령 행 :

require 'pixel' 

    print "Hello please enter a command in : >> " 
    command = gets.chomp 

    case command 
    when "i", "I" 
    i = Image.new(m=5,n=6) 
    when "c","C" 
    i.clear 
    when "l","L" 
    i.add_color(x,y,c) 
    when "v","V" 
    i.vertical(x,y1,y2,c) 
    when "h","H" 
    i.horizontal(x1,x2,y,c) 
    when "f","F" 
    i.fill(x,y,c) 
    when "s","S" 
    i.s 
    when "x","X" 
    exit 
    else 
     puts "Opps command does not exist" 
    exit 
    end 

루비 이미지 생성기 코드 :

class Image 
     attr_accessor :m,:n 

    def initialize(m,n) 
    @m = m 
    @n = n 
    @image_array = Array.new(@n) {Array.new(@m).fill{(0)}} 
    end 

    def add_color(x,y,c) 
    x = x 
    y = y - 2 
    @image_array[x][y] = c 
    end 

    def vertical(x,y1,y2,c) 
    x = x - 1 
    y1 = y1 - 1 
    y2 = y2 - 1 
    @image_array[y1..y2].each {|row| row[x] = c } 
    end 

    def horizontal(y,x1,x2,c) 
    y = y - 2 
    z = x2...x1 
    @image_array[y].fill(c,z) 
end 

def fill(x,y,c) 
    x = x - 1 
    y = y - 1 
    s = x * y 
    s.upto(1).to_a 
    y.upto(1).to_a 

    @image_array[1..s].each {|r| r[y]=c } 
    @image_array[1..s].fill(c,s) 
end 

def s 
p @image_array 
end 

def clear(m,n) 
@image_array = Array.new(@n) {Array.new(@m).fill{(0)}} 
end 
end 

작동을 중지 명령 줄의 코드를 잘못 무엇입니까?

+2

귀하의 질문은 ... 명령 줄의 코드에서 무엇이 잘못 – Reactormonk

+1

? 그것은 작동을 멈 춥니 다? –

답변

관련 문제