ruby_terminal_games 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,14 +2,14 @@ module RubyTerminalGames
2
2
  class Keyboard
3
3
  attr_reader :thread
4
4
 
5
- def capture(detect_direction: false, &block)
5
+ def self.capture(detect_direction: false, &block)
6
6
  Curses.noecho
7
7
  Curses.stdscr.keypad(true)
8
8
  Curses.curs_set(0)
9
9
  Curses.cbreak
10
10
  Curses.raw
11
11
 
12
- Thread.new do
12
+ @capture_thread = Thread.new do
13
13
  loop do
14
14
  key = Curses.getch
15
15
  command = direction(key) || key
@@ -20,9 +20,18 @@ module RubyTerminalGames
20
20
  end
21
21
  end
22
22
 
23
+ def self.stop_capture
24
+ Thread.kill(@capture_thread)
25
+ Curses.echo
26
+ Curses.stdscr.keypad(false)
27
+ Curses.curs_set(1)
28
+ Curses.crmode
29
+ Curses.noraw
30
+ end
31
+
23
32
  private
24
33
 
25
- def direction(key)
34
+ def self.direction(key)
26
35
  case key
27
36
  when Curses::KEY_UP; then UP;
28
37
  when Curses::KEY_DOWN; then DOWN;
@@ -30,7 +30,7 @@ module RubyTerminalGames
30
30
  def play!
31
31
  @playing = true
32
32
 
33
- KEYBOARD.capture(detect_direction: true) do |key|
33
+ Keyboard.capture(detect_direction: true) do |key|
34
34
  exit if key =~ /q/i
35
35
  next unless direction_allowed?(key)
36
36
  @direction = key
@@ -1,3 +1,3 @@
1
1
  module RubyTerminalGames
2
- VERSION = '0.0.2'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_terminal_games
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Alves
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-17 00:00:00.000000000 Z
11
+ date: 2015-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -78,6 +78,11 @@ files:
78
78
  - lib/ruby_terminal_games.rb
79
79
  - lib/ruby_terminal_games/board.rb
80
80
  - lib/ruby_terminal_games/game.rb
81
+ - lib/ruby_terminal_games/hangman.rb
82
+ - lib/ruby_terminal_games/hangman/board.rb
83
+ - lib/ruby_terminal_games/hangman/game.rb
84
+ - lib/ruby_terminal_games/hangman/word.rb
85
+ - lib/ruby_terminal_games/hangman/words.txt
81
86
  - lib/ruby_terminal_games/keyboard.rb
82
87
  - lib/ruby_terminal_games/snake.rb
83
88
  - lib/ruby_terminal_games/snake/apple.rb
@@ -105,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
110
  version: '0'
106
111
  requirements: []
107
112
  rubyforge_project:
108
- rubygems_version: 2.2.2
113
+ rubygems_version: 2.4.5
109
114
  signing_key:
110
115
  specification_version: 4
111
116
  summary: Ruby Terminal Games