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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78089ff494b1a687a567d483eb155e9891c69a991e8f4b045bf024e7365c58df
|
4
|
+
data.tar.gz: 820b61382a22d1c283f552ee637507dd9a511efa1d7f66656decd64f67304c8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/twisty_puzzles/cube.rb
CHANGED
@@ -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.
|
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 ==
|
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)
|
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.
|
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-
|
11
|
+
date: 2021-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|