行の 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
Ruby 画像生成コード:
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
動作を停止するコマンド ライン コードの何が問題になっていますか?