Class: ConsoleShogi::Terminal::Cursor
- Inherits:
-
Object
- Object
- ConsoleShogi::Terminal::Cursor
- Defined in:
- lib/console_shogi/terminal/cursor.rb
Defined Under Namespace
Classes: TerminalPosition
Constant Summary collapse
- VERTICAL_DISTANCE =
1- HORIZONTAL_DISTANCE =
2- CURSOR_DIRECTIONS =
%w(A B C D)
Instance Attribute Summary collapse
-
#grid_position ⇒ Object
readonly
Returns the value of attribute grid_position.
-
#terminal_position ⇒ Object
readonly
Returns the value of attribute terminal_position.
Instance Method Summary collapse
-
#initialize(terminal_index_x: 1, terminal_index_y: 1) ⇒ Cursor
constructor
A new instance of Cursor.
- #move(direction) ⇒ Object
Constructor Details
#initialize(terminal_index_x: 1, terminal_index_y: 1) ⇒ Cursor
Returns a new instance of Cursor.
12 13 14 15 |
# File 'lib/console_shogi/terminal/cursor.rb', line 12 def initialize(terminal_index_x: 1, terminal_index_y: 1) @terminal_position = TerminalPosition.new(x: 1, y: 1) @grid_position = GridPosition.new(**calculate_grid_position) end |
Instance Attribute Details
#grid_position ⇒ Object (readonly)
Returns the value of attribute grid_position.
10 11 12 |
# File 'lib/console_shogi/terminal/cursor.rb', line 10 def grid_position @grid_position end |
#terminal_position ⇒ Object (readonly)
Returns the value of attribute terminal_position.
10 11 12 |
# File 'lib/console_shogi/terminal/cursor.rb', line 10 def terminal_position @terminal_position end |
Instance Method Details
#move(direction) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/console_shogi/terminal/cursor.rb', line 17 def move(direction) return unless CURSOR_DIRECTIONS.include?(direction) distance = case direction when 'A', 'B' VERTICAL_DISTANCE when 'C', 'D' HORIZONTAL_DISTANCE end print "\e[#{distance}#{direction}" update_terminal_position! end |