-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpoint.rb
More file actions
48 lines (41 loc) · 706 Bytes
/
point.rb
File metadata and controls
48 lines (41 loc) · 706 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Point
attr_accessor :x, :y
def initialize(x, y)
@x = x
@y = y
end
def to_s
"#{x},#{y}"
end
def /(rhs)
if rhs.is_a? Point
Point.new(x / rhs.x, y / rhs.y)
else
Point.new(x / rhs, y / rhs)
end
end
def *(rhs)
if rhs.is_a? Point
Point.new(x * rhs.x, y * rhs.y)
else
Point.new(x * rhs, y * rhs)
end
end
def +(rhs)
if rhs.is_a? Point
Point.new(x + rhs.x, y + rhs.y)
else
Point.new(x + rhs, y + rhs)
end
end
def -(rhs)
if rhs.is_a? Point
Point.new(x - rhs.x, y - rhs.y)
else
Point.new(x - rhs, y - rhs)
end
end
def floor
Point.new(x.floor, y.floor)
end
end