minesweeper-curses 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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