{"id":26327657,"url":"https://github.com/or18/rubiks-cube-xcross-solver","last_synced_at":"2025-03-15T20:29:19.937Z","repository":{"id":280903073,"uuid":"849765964","full_name":"or18/Rubiks-cube-xcross-solver","owner":"or18","description":"C++ source to solve Rubik's cube cross, xcross, xxcross, xxxcross, xxxxcross, last layer substeps (OLL, ZBLS, etc.), last layer. ","archived":false,"fork":false,"pushed_at":"2025-03-05T22:49:44.000Z","size":527,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T23:28:54.863Z","etag":null,"topics":["cpp","ida-star-algorithm","rubiks-cube","rubiks-cube-solver"],"latest_commit_sha":null,"homepage":"https://or18.github.io/Rubiks-cube-xcross-solver/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/or18.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-30T07:50:41.000Z","updated_at":"2025-03-05T22:49:47.000Z","dependencies_parsed_at":"2025-03-05T23:38:57.429Z","dependency_job_id":null,"html_url":"https://github.com/or18/Rubiks-cube-xcross-solver","commit_stats":null,"previous_names":["or18/rubiks-cube-xcross-solver"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/or18%2FRubiks-cube-xcross-solver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/or18%2FRubiks-cube-xcross-solver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/or18%2FRubiks-cube-xcross-solver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/or18%2FRubiks-cube-xcross-solver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/or18","download_url":"https://codeload.github.com/or18/Rubiks-cube-xcross-solver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243790325,"owners_count":20348372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","ida-star-algorithm","rubiks-cube","rubiks-cube-solver"],"created_at":"2025-03-15T20:29:18.979Z","updated_at":"2025-03-15T20:29:19.919Z","avatar_url":"https://github.com/or18.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rubiks-cube-xcross-solver\nC++ source to solve Rubik's cube cross, xcross, xxcross, xxxcross, xxxxcross, last layer substeps (OLL, ZBLL, etc.), last layer. Demo solver: https://or18.github.io/Rubiks-cube-xcross-solver/\n\n# Note\n- Memory required (for main.cpp, cli.cpp). For more detail performance, please see Performance.\n  \n| solver  | memory |\n| --- | --- |\n| cross  | 4.2 MB  |\n| xcross  | 574 MB  |\n| xxcross  | 859 MB  |\n| xxxcross  | 1.15 GB  |\n| xxxxcross  | 1.43 GB  |\n| LL substeps  | 1.43 GB  |\n| LL  | 1.43 GB  |\n| LL AUF  | 1.43 GB  |\n\n- Add the following three lines to further speed up the process\n```c++\n#pragma GCC target(\"avx2\")\n#pragma GCC optimize(\"Ofast\")\n#pragma GCC optimize(\"unroll-loops\")\n```\n- CLI is available. See cli.cpp and cli_output.txt.\n- Lite version is available. See cli_lite.cpp and cli_lite_without_thread.cpp. For cross, xcross, xxcross and xxxcross, this cli is better.\n- Demo solver is available. See https://or18.github.io/Rubiks-cube-xcross-solver/\n- cli.cpp and cli_lite.cpp testing on github codespace. \u003cbr\u003e\n[cli.cpp](https://youtu.be/htnWnpDn01Y?si=O1tiVga04Jede1qP) \u003cbr\u003e\n[cli_lite.cpp](https://youtu.be/76oK2FGWia8?si=AcBwhUqRPq9PagZN) \u003cbr\u003e\n# How to use\n## sample script\n```c++\n    solve_F2L( //sample program to output xxcross solutions\n        \"R' F D L2 U' R2 U' F2 U' F2 R2 B2 D2 F L' R' D2 F' D L R\", //scramble\n        \"z2\", //pre rotation\n        true, //solve BL slot or not\n        false, //solve BR slot or not\n        false, //solve FR slot or not\n        true, //solve FL slot or not\n        12, //max solution length\n        100, //max solution number\n        \"UDLRFB\" //face restrict (use U, D, L, R, F, B)\n        );\n```\n## compile and run\n```sh\n!g++ -Ofast -mtune=native -march=native main.cpp -pthread\n!./a.out\n```\n## output\n```txt\n1: z2 R D L2 F' R2 D2 L' U L2 B2 \n2: z2 U D' F' L' R' U D2 R2 F2 U2 B\n3: z2 U2 F' R2 D' B D2 R' U2 F L' D'\n4: z2 U' L' D2 R U D L2 D2 B' U' L'\n5: z2 U' L' F2 D2 R D' B' L' B' U' B\n6: z2 D L2 D' L2 R U2 F U' L' D' B\n7: z2 D F' R B U B2 L D' L' U L'\n8: z2 D2 R' B2 U' R D' B' U' R2 F L'\n9: z2 D2 F' L' D' F L' D' R F2 L' D'\n10: z2 D' R' U' F' D2 B2 R' F U L2 D2\n11: z2 D' F' U L R' B2 R2 U2 F' D' L2\n12: z2 D' F' U L' R' D2 F' U R2 F2 B2\n13: z2 D' F' L' R' D2 F' U R2 F2 B2 R\n14: z2 L2 R U2 F U L U2 D L' D2 B\n15: z2 L2 R U2 F D F2 U' L' D2 R2 B\n16: z2 L2 R U2 F D F2 U' L' D2 B R2\n17: z2 L2 R U2 F L U' D F' L' D2 B\n18: z2 L2 R U2 F B2 L' U' D L D2 B\n19: z2 L2 R B R D' R' U L' F D' B\n20: z2 L2 F' U D2 R D' R' B' L' U B2\n21: z2 L' R D F R2 B2 U L' R2 D' R'\n22: z2 L' F R B2 L2 U' F L D' R B2\n23: z2 L' F2 D B2 U' L' B R' D B' R\n24: z2 L' F2 B2 L D' R F' U' F2 L B\n25: z2 L' F2 B' D' B' U' R F L U' B\n26: z2 L' F' U F2 R U F D F L' D2\n27: z2 L' B2 U L R' B' L2 U F2 D B\n28: z2 R U L2 U' F' L' F2 D F L' D2 \n29: z2 R U B2 U' L2 U2 F U' L' D' B\n30: z2 R U' D' L2 F2 L2 R B D F2 B2\n31: z2 R U' L2 U2 B2 L2 F U' L D' B\n32: z2 R U' F D' R U' B' L' R U2 L\n33: z2 R D L2 D' L2 U2 F U' L' D' B\n34: z2 R D L2 F' D R' D2 L2 F2 L' D'\n35: z2 R D L2 F' R2 D2 L' U L2 B2 U\n36: z2 R D L2 F' R2 D2 L' U L2 B2 U2\n37: z2 R D L2 F' R2 D2 L' U L2 B2 U'\n38: z2 R F' D L' D2 F2 L2 B' D' F2 R'\n39: z2 R F' D' L' F2 L2 R B' D' F2 R'\n40: z2 R F' D' L' F2 L2 B' R D' F2 R'\n41: z2 R B' L2 U D' L' F D' B U' F'\n42: z2 R2 D R' U B2 L U' F U L2 D'\n43: z2 R' U F2 D L' B2 U2 D2 B D B2\n44: z2 R' D R2 U L' F B2 D F' D2 B'\n45: z2 B2 L' F B2 U' D R U' B' L' B'\n46: z2 B' L' R F R U D F2 L' D2 F' \n47: z2 U D L2 D2 F' L' R' U' L2 B2 D2 B\n48: z2 U D L' F D2 F' R' D' R2 B2 D' B'\n49: z2 U D L' B R2 B' R' D' R2 B2 D' B'\n50: z2 U D F D2 F' L' R' U' B2 L2 D2 B'\n51: z2 U D F' R' U2 R' U' B' R2 F2 L' B'\n52: z2 U D F' R' U2 R' B' U' R2 F2 L' B'\n53: z2 U D B R2 B' L' R' D' R2 B2 D' B'\n54: z2 U D2 R' U D' R2 F2 U' B' L' U B\n55: z2 U D2 F' L' D2 R U F' U' B2 D' B'\n56: z2 U D' L2 F2 R' F' L' B2 R2 D' L2 B\n57: z2 U D' R F R U2 R U' L B' R2 F\n58: z2 U D' R2 B2 R' F L' D2 B' D L2 B2\n59: z2 U D' R' F U R' B2 D L R' F2 B\n60: z2 U D' F R' U R' B2 D L R' F2 B\n61: z2 U D' F B2 D2 L' R B2 U B2 D B\n62: z2 U D' F' D2 L' R B2 U' D2 B2 D B\n63: z2 U D' F' L R' B2 R2 U2 D F' D2 L2\n64: z2 U D' F' L R' B2 R2 U2 D' L2 U2 B\n65: z2 U D' F' L' R' U D2 R2 F2 U2 B U\n66: z2 U D' F' L' R' U D2 R2 F2 U2 B U2\n67: z2 U D' F' L' R' U D2 R2 F2 U2 B U' \n68: z2 U D' F' L' R' U' D2 F2 U2 R2 F2 B\n69: z2 U D' F' R' F L' U D2 R2 F2 U2 B\n70: z2 U D' F' R' F2 L' U D2 R2 F2 U2 B\n71: z2 U D' F' R' F' L' U D2 R2 F2 U2 B\n72: z2 U D' B2 R2 F D2 L' R D B2 L2 B'\n73: z2 U L' U F' R' B2 U B D R' F2 B2\n74: z2 U R D' F2 U L2 U R F2 B D B2\n75: z2 U R F R2 U2 R' U' R D' R F2 B'\n76: z2 U R F' R2 F2 D L' D' R2 B2 D' B'\n77: z2 U R F' R2 F2 R2 D L' D' B2 D' B'\n78: z2 U R B' L2 U2 F B' U L U2 D' B\n79: z2 U R' U' R2 U' F D' R U' F2 B' R\n80: z2 U R' B' L' R' F U' D B' R F B2\n81: z2 U F U' L F2 D R' B' U F2 U2 L'\n82: z2 U F2 U2 R U2 F U D L' D2 B' R2\n83: z2 U F2 U2 R U2 F D L' U D2 B' R2\n84: z2 U F' R F' D B2 L' F2 U2 D' F2 B\n85: z2 U B2 L B2 L2 D2 B2 U' D' B' U' L'\n86: z2 U2 D' R' U' F L F2 R2 U2 F2 B' R\n87: z2 U2 D' F' U' L' R' U D2 R2 F2 U2 B \n88: z2 U2 L' U D2 R D L2 D2 B' U' L' R2\n89: z2 U2 L' U D' L2 D' R D' B' U' L' R2\n90: z2 U2 L' U' D' L2 F L R' U R2 F2 B\n91: z2 U2 L' F2 D2 R U D' B' U2 L' B R\n92: z2 U2 L' F2 L' R F U' D L' D2 R B\n93: z2 U2 L' F2 L' R2 D R' F U' L' D' B\n94: z2 U2 L' F' U D R' U' B' R2 F L' B'\n95: z2 U2 L' B D' F U' L R' U R2 F' B2\n96: z2 U2 R F D' F U' F' U2 F2 R F2 B'\n97: z2 U2 R' U2 D R' B U' F2 B U2 L' B\n98: z2 U2 R' U' D L' D B2 D B D B2 R'\n99: z2 U2 F2 U R U' F D L U2 L2 D2 B'\n100: z2 U2 F2 R2 D R D2 L2 B' U R D F2\n```\n\n# Performance\n## Test Environment\n11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz \u003cbr\u003e\nCores: 4 \u003cbr\u003e\nProcessors: 8 \u003cbr\u003e\nRAM: 16 GB \u003cbr\u003e\n\n## F2L solver\nscramble: B U2 B' R F B' D R B' R2 B2 L D2 B2 R' U2 R' U2 F2 L2 \u003cbr\u003e\nrotation: z2 \u003cbr\u003e\nsolution count: 100 \u003cbr\u003e\nface restrict: UDLFRF \u003cbr\u003e\n\n| slot option | setup (ms) | search (ms) | Memory (MB) | \n| --- | --- | --- | --- |\n| None | 11  | 25  | 8  |\n| BL | 4784  | 31  | 564  |\n| BL FL | 5786 | 41 | 842 |\n| BL BR FL | 5611 | 920 | 1121 |\n| BL BR FR FL | 5801 | 35133 | 1399 |\n\nlite version\n\n| slot option | setup (ms) | search (ms) | Memory (MB) | \n| --- | --- | --- | --- |\n| None | 15  | 31  | 8  |\n| BL | 379 | 31  | 42  |\n| BL FL | 312 | 94 | 59 |\n| BL BR FL | 392 | 5357 | 76 |\n| BL BR FR FL | 372 | 329173 | 94 |\n\n## LL substeps solver\nscramble1: L F R2 L' U2 F R F R2 F2 U2 R2 F' U2 F U2 F' (last layer) \u003cbr\u003e\nrotation: \u003cbr\u003e\nsolution count: 50 \u003cbr\u003e\n\n| LL option |  face restrict | setup (ms) | search (ms) | Memory (MB) |\n| --- | --- | --- | --- | --- |\n| EO | UDLRFB | 6622 | 2201 | 1400 |\n| EO | UDRF | 6634 | 374 | 1400 |\n| EO | URF | 6073 | 31 | 1400 |\n| EO CO | UDLRFB | 6441 | 6721 | 1400 |\n| EO CO | UDRF | 6278 | 6103 | 1400 |\n| EO CO | URF | 6116 | 579 | 1400 |\n| EO CO CP | UDLRFB | 6225 | 50698 | 1400 |\n| EO CO CP | UDRF | 6608 | 45860 | 1400 |\n| EO CO CP | URF | 6486 | 3217 | 1400 |\n\nscramble2: U' L2 F' L' U F' R' U2 D2 F2 R D2 L' U2 F2 R' B2 (last layer \u0026 FR slot) \u003cbr\u003e \nrotation: \u003cbr\u003e\nsolution count: 50 \u003cbr\u003e\n\n| LL option |  face restrict | setup (ms) | search (ms) | Memory (MB) |\n| --- | --- | --- | --- | --- |\n| EO | UDLRFB | 6554 | 502 | 1400 |\n| EO | UDRF | 6317 | 391 | 1400|\n| EO | URF | 6061 | 31 | 1400 |\n| EO CO | UDLRFB | 6428 | 25144 | 1400 |\n| EO CO | UDRF | 6160 | 16189 | 1400 |\n| EO CO | URF | 6141 | 1238 | 1400 |\n| EO CO CP | UDLRFB | 6106 | 336487 | 1400 |\n| EO CO CP | UDRF | 6064 | 192209 | 1400 |\n| EO CO CP | URF | 6672 | 13133 | 1400 |\n\n## LL solver\nscramble1: L2 R2 U R2 U' B2 D B2 L2 U R2 U L R' F2 L' R' \u003cbr\u003e\nrotation: \u003cbr\u003e\nsolution count: 20 \u003cbr\u003e\n\n| face restrict | setup (ms) | search (ms) | Memory (MB) |\n| --- | --- | --- | --- |\n| UDLRFB | 6006 | 34934 | 1400 |\n| UDRF | 6400 | 39588 | 1400 |\n| URF| 6298 | 3256 | 1400 |\n\nscramble2: R D L2 D' R' D L2 U L2 F2 D R2 U F2 D2 L2 B2 \u003cbr\u003e\nrotation: \u003cbr\u003e\nsolutions count: 20 \u003cbr\u003e\n\n| face restrict | setup (ms) | search (ms) | Memory (MB) |\n| --- | --- | --- | --- |\n| UDLRFB | 6465 | 113948 | 1400 |\n| UDRF | 6693 | 57412 | 1400 |\n| URF| 6431 | 14209 | 1400 |\n\nscramble3: U2 F2 L2 D2 F2 U2 B2 R' F2 D2 L' B D L' D L' F2 R' \u003cbr\u003e\nrotation: \u003cbr\u003e\nsolutions count: 20 \u003cbr\u003e\n\n| face restrict | setup (ms) | search (ms) | Memory (MB) |\n| --- | --- | --- | --- |\n| UDLRFB | 6431 | 200947 | 1400 |\n| UDRF | 6030 | 422548 | 1400 |\n| URF| 6343 | 18259 | 1400 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2For18%2Frubiks-cube-xcross-solver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2For18%2Frubiks-cube-xcross-solver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2For18%2Frubiks-cube-xcross-solver/lists"}