twisty_puzzles 0.0.11 → 0.0.12

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
  SHA256:
3
- metadata.gz: 0f6166de8734039f856869be9f20b6109c194556094bc281ae3138ada4a1ad27
4
- data.tar.gz: 6a19cc1ad482ec49831c057d944b9055f70c206882ac618892b0336e8d047e3b
3
+ metadata.gz: 78089ff494b1a687a567d483eb155e9891c69a991e8f4b045bf024e7365c58df
4
+ data.tar.gz: 820b61382a22d1c283f552ee637507dd9a511efa1d7f66656decd64f67304c8b
5
5
  SHA512:
6
- metadata.gz: 3ba31f44cb0df6f836d9a9b9908550cd2d6ca0ede672d4784f084b609e1249fd0e8e0f8d6cdc0b09e8faba6a462d49966c698b9d5601a4901aa0ee4eb8bc95c1
7
- data.tar.gz: 16727e63c37191c99ed1c185c851c8a541c97f110505f2c6ae5eeeabb186c11c35173d35c2441cc8c15318dd88f380656afc04690d5bb4eaa9b359b9a2725de3
6
+ metadata.gz: 063d2c8607b7d7708d0dea3fa78eebe3a883135cf2e2a46e5db7d5e0b80f6d21dd084b7a554718b54d45866eeecddf784857eb247a4a1de4ac924b8293aedd50
7
+ data.tar.gz: 9dff522e48073f756d4aa0e2377ff754b8fbefe0caaf8fb830383e47d14be7bb354e55c1ef2355fca1259dc255002e732f5089bd9269727973e2979de6a9d6e2
@@ -28,7 +28,7 @@ module TwistyPuzzles
28
28
 
29
29
  # Middle coordinate for uneven numbers, the one before for even numbers
30
30
  def self.middle_or_before(cube_size)
31
- cube_size - cube_size / 2 - 1
31
+ cube_size - (cube_size / 2) - 1
32
32
  end
33
33
 
34
34
  # Middle coordinate for uneven numbers, the one after for even numbers
@@ -38,7 +38,7 @@ module TwistyPuzzles
38
38
 
39
39
  # The last coordinate that is strictly before the middle
40
40
  def self.last_before_middle(cube_size)
41
- cube_size / 2 - 1
41
+ (cube_size / 2) - 1
42
42
  end
43
43
 
44
44
  def self.canonicalize(index, cube_size)
@@ -310,7 +310,7 @@ module TwistyPuzzles
310
310
 
311
311
  def self.for_corner(corner)
312
312
  native = Native::SkewbCoordinate.for_corner(corner.face_symbols)
313
- new(Face.for_face_symbol(corner.face_symbols.first), 1 + corner.piece_index % 4, native)
313
+ new(Face.for_face_symbol(corner.face_symbols.first), 1 + (corner.piece_index % 4), native)
314
314
  end
315
315
 
316
316
  def hash
@@ -34,6 +34,14 @@ module TwistyPuzzles
34
34
 
35
35
  attr_reader :piece_index, :face_symbols
36
36
 
37
+ def self.min_parseable_face_symbols
38
+ self::FACES
39
+ end
40
+
41
+ def self.max_parseable_face_symbols
42
+ self::FACES
43
+ end
44
+
37
45
  def self.generate_parts
38
46
  valid_face_symbol_combinations =
39
47
  FACE_SYMBOLS.permutation(self::FACES).select do |p|
@@ -147,7 +155,7 @@ module TwistyPuzzles
147
155
 
148
156
  def self.parse(piece_description)
149
157
  face_symbols =
150
- piece_description.upcase.strip.split('').map do |e|
158
+ piece_description.upcase.strip.chars.map do |e|
151
159
  FACE_SYMBOLS[FACE_NAMES.index(e)]
152
160
  end
153
161
  for_face_symbols(face_symbols)
@@ -327,6 +335,14 @@ module TwistyPuzzles
327
335
  class MoveableCenter < Part
328
336
  FACES = 1
329
337
 
338
+ def self.min_parseable_face_symbols
339
+ self::CORRESPONDING_PART_CLASS::FACES
340
+ end
341
+
342
+ def self.max_parseable_face_symbols
343
+ self::CORRESPONDING_PART_CLASS::FACES
344
+ end
345
+
330
346
  def self.min_cube_size
331
347
  4
332
348
  end
@@ -467,11 +483,15 @@ module TwistyPuzzles
467
483
  false
468
484
  end
469
485
 
486
+ def self.max_parseable_face_symbols
487
+ FACES + 1
488
+ end
489
+
470
490
  def self.for_face_symbols(face_symbols)
471
491
  # One additional face symbol is usually mentioned for wings.
472
492
  raise unless face_symbols.length == FACES || face_symbols.length == FACES + 1
473
493
 
474
- if face_symbols.length == 3
494
+ if face_symbols.length == FACES + 1
475
495
  for_corner_face_symbols(face_symbols)
476
496
  else
477
497
  for_face_symbols_internal(face_symbols)
@@ -518,7 +538,7 @@ module TwistyPuzzles
518
538
  end
519
539
 
520
540
  def num_incarnations(cube_size)
521
- cube_size > 3 ? cube_size / 2 - 1 : 0
541
+ cube_size > 3 ? (cube_size / 2) - 1 : 0
522
542
  end
523
543
 
524
544
  # One index of such a piece on a on a NxN face.
@@ -617,7 +637,7 @@ module TwistyPuzzles
617
637
  ELEMENTS = generate_parts
618
638
 
619
639
  def num_incarnations(cube_size)
620
- cube_size > 3 ? cube_size / 2 - 1 : 0
640
+ cube_size > 3 ? (cube_size / 2) - 1 : 0
621
641
  end
622
642
 
623
643
  # One index of such a piece on a on a NxN face.
@@ -643,7 +663,7 @@ module TwistyPuzzles
643
663
  if cube_size.even? || cube_size <= 3
644
664
  0
645
665
  else
646
- cube_size / 2 - 1
666
+ (cube_size / 2) - 1
647
667
  end
648
668
  end
649
669
 
@@ -68,8 +68,8 @@ module TwistyPuzzles
68
68
 
69
69
  def equivalent_slice_move?(other, cube_size)
70
70
  cube_size == 3 && other.slice_index == 1 &&
71
- (@axis_face == other.axis_face && @direction == other.direction ||
72
- @axis_face == other.axis_face.opposite && @direction == other.direction.inverse)
71
+ ((@axis_face == other.axis_face && @direction == other.direction) ||
72
+ (@axis_face == other.axis_face.opposite && @direction == other.direction.inverse))
73
73
  end
74
74
  end
75
75
 
@@ -72,9 +72,9 @@ module TwistyPuzzles
72
72
  def skewb_ascii_art_line(first_color, middle_color, last_color, num_first_color)
73
73
  raise if num_first_color > SKEWB_FACE_SIZE / 2
74
74
 
75
- first_color * num_first_color +
76
- middle_color * (SKEWB_FACE_SIZE - 2 * num_first_color) +
77
- last_color * num_first_color
75
+ (first_color * num_first_color) +
76
+ (middle_color * (SKEWB_FACE_SIZE - (2 * num_first_color))) +
77
+ (last_color * num_first_color)
78
78
  end
79
79
 
80
80
  def skewb_ascii_art(center_color, corner_colors)
@@ -116,7 +116,7 @@ module TwistyPuzzles
116
116
  front_face = face_lines(cube_state, :F, 1, 3) { |c| color_character(c, color_mode) }
117
117
  right_face = face_lines(cube_state, :R, 1, 3) { |c| color_character(c, color_mode) }
118
118
  pll_line = front_face.first + right_face.first
119
- (top_face + [pll_line] * 3).join("\n")
119
+ (top_face + ([pll_line] * 3)).join("\n")
120
120
  end
121
121
 
122
122
  def cube_string(cube_state, color_mode)
@@ -150,7 +150,7 @@ module TwistyPuzzles
150
150
  end
151
151
 
152
152
  def pad_lines(lines, padding)
153
- lines.map { |line| empty_name * padding + line }
153
+ lines.map { |line| (empty_name * padding) + line }
154
154
  end
155
155
 
156
156
  def zip_concat_lines(*args)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TwistyPuzzles
4
- VERSION = '0.0.11'
4
+ VERSION = '0.0.12'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twisty_puzzles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernhard F. Brodowsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-04 00:00:00.000000000 Z
11
+ date: 2021-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize