minesweeper-curses 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5044d455ac72b38a323598331efbbcebb378e973
4
- data.tar.gz: a0fc42e08fd4db82e3fb584c8e6db970a7c9435a
3
+ metadata.gz: 72a271c6a7011e3729fe7f9afc4ad0300e511dff
4
+ data.tar.gz: 2bbefb3ff25068f81b003bec8e2c995f4e941e54
5
5
  SHA512:
6
- metadata.gz: cddaf8165b7f84a45dc59e5f53b168ec80cc3c1157b7a9a58c7b9b47a12d1f3b638222b8a012a2233756c9a0d5dbc7f4726888f774037107fdae8b4796c899d8
7
- data.tar.gz: 188b9d315dd4e5fe31bcd7ec1205a79b54f2fe96237480e5b21fac75a399a3d113f0f95de0f013fb6bc3e5ca9c72a00203f4a3d37ca23cae23c2ab209bae1d70
6
+ metadata.gz: 66916578e24ee520662ee5c69f4f55da5f7403602d7177a265d443aa4695b05cb7657fea7a20a766bbe67e056841556824fdb30d676a9d6a3fa74c47167ce7a4
7
+ data.tar.gz: 226ffa6c95f0ff892dfefd11db791e858789cc1be5a58ee3ccd35590a4ca31a4a9090fb93e0f634343c642b30a1db47c1b1004ae664d88e5b4a8e3b57496e534
data/.rubocop.yml CHANGED
@@ -1,3 +1,16 @@
1
+ AllCops:
2
+ Includes:
3
+ - Rakefile
4
+ - config.ru
5
+ Excludes:
6
+ - db/**
7
+ - config/**
8
+ - script/**
9
+ - minesweeper.gemspec
10
+
11
+ Documentation:
12
+ Enabled: false
13
+
1
14
  Metrics/LineLength:
2
15
  Max: 120
3
16
  # To make it possible to copy or click on URIs in the code, we allow lines
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minesweeper-curses (0.2.1)
4
+ minesweeper-curses (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -18,7 +18,7 @@ module Minesweeper
18
18
 
19
19
  def toggle_bomb_flag!
20
20
  return if opened?
21
- if state.marked_as_bomb?
21
+ if marked_as_bomb?
22
22
  state.view = ' '
23
23
  state.color = COLOR_MAGENTA
24
24
  state.status = :initial
@@ -10,12 +10,12 @@ module Minesweeper
10
10
  SPACE = ' '
11
11
 
12
12
  def_delegators :@window, :curx, :cury
13
+ def_delegators :board_params, :height, :width
13
14
 
14
- attr_reader :height, :width, :cells, :window
15
+ attr_reader :board_params, :cells, :window
15
16
 
16
- def initialize(height:, width:, window:)
17
- @height = height
18
- @width = width
17
+ def initialize(board_params:, window:)
18
+ @board_params = board_params
19
19
  @window = window
20
20
  @cells = []
21
21
  end
@@ -38,12 +38,11 @@ module Minesweeper
38
38
  when KEY_RIGHT
39
39
  move_right
40
40
  when ENTER
41
- open_cell(cury, curx)
42
- play(cury, curx)
41
+ open_cell
43
42
  when SPACE
44
- toggle_bomb_flag(cury, curx)
45
- play(cury, curx)
43
+ toggle_bomb_flag
46
44
  end
45
+ play(cury, curx)
47
46
  end
48
47
  rescue GameWon, GameOver => e
49
48
  end_game(e)
@@ -67,14 +66,14 @@ module Minesweeper
67
66
  window.setpos(0, 1)
68
67
  end
69
68
 
70
- def open_cell(y, x)
71
- cell_x = x / 3 # / 3 because rendered cell 3 chars
72
- open_original(y, cell_x)
69
+ def open_cell
70
+ cell_x = curx / STEP
71
+ open_original(cury, cell_x)
73
72
  end
74
73
 
75
- def toggle_bomb_flag(y, x)
76
- cell_x = x / 3 # / 3 because rendered cell 3 chars
77
- cell = cells[y][cell_x]
74
+ def toggle_bomb_flag
75
+ cell_x = curx / STEP
76
+ cell = cells[cury][cell_x]
78
77
  cell.toggle_bomb_flag!
79
78
  raise GameWon if game_won?
80
79
  end
@@ -13,30 +13,30 @@ module Minesweeper
13
13
  end
14
14
 
15
15
  def build
16
- params_builder.prepare
17
- board = create_board
18
- fill_with_cells(board)
19
- inject_bombs(board)
16
+ @board_params = params_builder.prepare
17
+ @board = create_board
18
+ fill_with_cells
19
+ inject_bombs
20
20
  board
21
21
  end
22
22
 
23
23
  private
24
24
 
25
- attr_reader :window, :flush_params
25
+ attr_reader :window, :flush_params, :board_params, :board
26
26
 
27
- def_delegators :params_builder, :height, :width, :level
27
+ def_delegators :board_params, :height, :width, :level
28
28
 
29
29
  def create_board
30
- Minesweeper::Board.new(height: height, width: width, window: window)
30
+ Minesweeper::Board.new(board_params: board_params, window: window)
31
31
  end
32
32
 
33
- def fill_with_cells(board)
33
+ def fill_with_cells
34
34
  height.times do
35
35
  board.cells << Array.new(width) { Cell.new }
36
36
  end
37
37
  end
38
38
 
39
- def inject_bombs(board)
39
+ def inject_bombs
40
40
  bomb_injector.inject(board, level)
41
41
  end
42
42
 
@@ -45,7 +45,7 @@ module Minesweeper
45
45
  end
46
46
 
47
47
  def params_builder
48
- @params_builder ||= Minesweeper::ParamsBuilder.new(window, flush_params)
48
+ Minesweeper::ParamsBuilder.new(window, flush_params)
49
49
  end
50
50
  end
51
51
  end
@@ -8,7 +8,7 @@ module Minesweeper
8
8
 
9
9
  def open!(*)
10
10
  state.view = '*'
11
- state.color = state.marked_as_bomb? ? COLOR_WHITE : COLOR_RED
11
+ state.color = marked_as_bomb? ? COLOR_WHITE : COLOR_RED
12
12
  state.status = :opened
13
13
  end
14
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minesweeper
4
- VERSION = '0.2.1'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minesweeper-curses
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mykhailo Rybak