small speedup achieved, can now eliminate same-face combinations from investigated solutions
This commit is contained in:
parent
60b2b3bb1a
commit
ff81c3e7c8
@ -31,9 +31,8 @@ class CounterSkipSameFaces(size: Int, base: Int = 10): Counter(size, base) {
|
|||||||
*/
|
*/
|
||||||
private fun containsConsecutiveSameFaceMoves(): Boolean {
|
private fun containsConsecutiveSameFaceMoves(): Boolean {
|
||||||
for (i in 1 until this.counter.size) {
|
for (i in 1 until this.counter.size) {
|
||||||
val current = Move.values()[this.counter[i]]
|
// perhaps is a speedup
|
||||||
val previous = Move.values()[this.counter[i - 1]]
|
if(this.counter[i]%6 == this.counter[i-1]%6)
|
||||||
if (current sameFace previous)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
@ -21,7 +21,7 @@ open abstract class CrossSolver {
|
|||||||
fun printResults(results: Map<Int, List<Move>>) {
|
fun printResults(results: Map<Int, List<Move>>) {
|
||||||
println("results: ")
|
println("results: ")
|
||||||
results.forEach { color, moveList ->
|
results.forEach { color, moveList ->
|
||||||
println("> color ${colorLetter(color)}, moves $moveList")
|
println("> color ${colorLetter(color)}, moves (${moveList.size}) $moveList")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,10 @@ import java.util.*
|
|||||||
* All the possible moves on the cube.
|
* All the possible moves on the cube.
|
||||||
*/
|
*/
|
||||||
enum class Move {
|
enum class Move {
|
||||||
F, F_, F2, B, B_, B2, L, L_, L2, R, R_, R2, U, U_, U2, D, D_, D2;
|
// these are purposely put in this order: Move.index % 6 will result in the same value for the same face
|
||||||
|
F, B, U, D, L, R,
|
||||||
|
F_, B_, U_, D_, L_, R_,
|
||||||
|
F2, B2, U2, D2, L2, R2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static methods for the Move object.
|
* Static methods for the Move object.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user