struct Point
- Point
- Struct
- Value
- Object
Included Modules
Extended Modules
Defined in:
point.crConstant Summary
-
Direction4 =
[Point.up, Point.left, Point.down, Point.right] -
Direction8 =
Direction4 + [Point.ul, Point.ur, Point.dl, Point.dr]
Constructors
-
.[](y : Int, x : Int) : self
Alias for
.new(y : Int, x : Int) -
.from(array : Array) : self
Creates point fomr given array.
- .new(y : Int, x : Int)
- .new(i : Int)
- .new
- .scan(scanner, io : IO) : self
Class Method Summary
-
.dl
Returns
Point.new(1, -1) -
.down
Returns
Point.new(1, 0) -
.dr
Returns
Point.new(1, 1) - .each(y : Int, w : Int)
- .each(h : Int, w : Int, &)
- .height : Int32
- .height? : Int32?
-
.left
Returns
Point.new(0, -1) - .reset_range
-
.right
Returns
Point.new(0, 1) - .set_range(height : Int, width : Int)
- .size
-
.to_direction?(c : Char, lrud = "LRUD")
Convert
Charrepresenting direction intoPoint. - .to_direction?(s : String, lrud = "LRUD")
-
.ul
Returns
Point.new(-1, -1) - .unsafe_fetch(index : Int)
-
.up
Returns
Point.new(-1, 0) -
.ur
Returns
Point.new(-1, 1) - .width : Int32
- .width? : Int32?
-
.zero
Returns
Point.new(0, 0)
Instance Method Summary
- #%(other : Point)
- #%(other : Int)
- #*(other : Point)
- #*(other : Int)
- #+(other : Point)
- #+(other : Int)
- #-(other : Point)
- #-(other : Int)
- #//(other : Point)
- #//(other : Int)
-
#<=>(other : Point)
The comparison operator.
-
#==(other : Point)
Compares this object to other based on the receiver’s
#<=>method, returningtrueif it returns0. - #[](i : Int)
- #adj4_in_range(&) : Nil
- #adj4_in_range
- #adj8_in_range
- #adj8_in_range(&) : Nil
- #adjacent4(&) : Nil
- #adjacent4
- #adjacent8
- #adjacent8(&) : Nil
- #chebyshev(other : Point)
- #cross(other : Point)
- #distance(other : Point)
- #distance_square(other : Point)
-
#dl
Returns
self + Point.new(1, -1) -
#dl!
Adds
Point.new(1, -1) - #dot(other : Point)
-
#down
Returns
self + Point.new(1, 0) -
#down!
Adds
Point.new(1, 0) -
#dr
Returns
self + Point.new(1, 1) -
#dr!
Adds
Point.new(1, 1) -
#flip_horizontally
Flips the grid horizontally.
-
#flip_horizontally!
Flips the grid horizontally.
-
#flip_vertically
Flips the grid vertically.
-
#flip_vertically!
Flips the grid vertically.
- #in_range?
-
#inspect(io : IO) : Nil
Writes a string representation of the point to io.
-
#left
Returns
self + Point.new(0, -1) -
#left!
Adds
Point.new(0, -1) - #manhattan(other : Point)
- #pred
-
#right
Returns
self + Point.new(0, 1) -
#right!
Adds
Point.new(0, 1) -
#rotate90
Rotates 90 degrees clockwise.
-
#rotate90!
Rotates 90 degrees clockwise.
- #succ
-
#to_direction_char?(lrud = "LRUD") : Char?
Convert
PointintoCharrepresenting direction. - #to_i
-
#to_s(io : IO) : Nil
Writes a string representation of the point to io.
-
#ul
Returns
self + Point.new(-1, -1) -
#ul!
Adds
Point.new(-1, -1) -
#up
Returns
self + Point.new(-1, 0) -
#up!
Adds
Point.new(-1, 0) -
#ur
Returns
self + Point.new(-1, 1) -
#ur!
Adds
Point.new(-1, 1) - #x : Int32
- #x=(x : Int32)
-
#xy
Returns
Point.new(x, y) - #y : Int32
- #y=(y : Int32)
-
#yx
Returns
Point.new(y, x) -
#zero
Returns
self + Point.new(0, 0) -
#zero!
Adds
Point.new(0, 0)
Constructor Detail
Class Method Detail
Convert Char representing direction into Point.
Point.to_direction?('R') # => Point.new(0, 1)
Instance Method Detail
The comparison operator. Returns 0 if the two objects are equal,
a negative number if this object is considered less than other,
a positive number if this object is considered greter than other,
or nil if the two objects are not comparable.
Subclasses define this method to provide class-specific ordering.
The comparison operator is usually used to sort values:
# Sort in a descending way:
[3, 1, 2].sort { |x, y| y <=> x } # => [3, 2, 1]
# Sort in an ascending way:
[3, 1, 2].sort { |x, y| x <=> y } # => [1, 2, 3]
Compares this object to other based on the receiver’s #<=> method,
returning true if it returns 0.
Also returns true if this and other are the same object.
Writes a string representation of the point to io.
Point.new(1, 2).inspect # => "(1, 2)"
Convert Point into Char representing direction.
Point.down.to_direction_char? # => 'D'
Point.left.to_direction_char? # => 'L'
Writes a string representation of the point to io.
Point.new(1, 2).to_s # => "(1, 2)"