rubikscube

college code for finding optimal rubiks cube solutions in java

git clone https://9o.is/git/rubikscube.git

commit a88b1992ff8f520477a0a797414431ad74d3a8d1
parent 394a040e7a0cea22f95955c7615d370499fe7348
Author: Jul <jul@9o.is>
Date:   Fri, 26 Oct 2012 18:38:18 -0400

Implemented file input for RubiksCube class. Added test cases.

Diffstat:
Msrc/RubiksCube.java | 27+++++++++++++++++++++++++--
Msrc/RubiksTest.java | 20+++++++++++++++++++-
Atest_cases/cube0 | 12++++++++++++
Atest_cases/cube1 | 12++++++++++++
Atest_cases/cube2 | 12++++++++++++
Atest_cases/cube3 | 12++++++++++++
Atest_cases/cube4 | 12++++++++++++
Atest_cases/cube5 | 12++++++++++++
Atest_cases/cube6 | 12++++++++++++
Atest_cases/cube7 | 12++++++++++++
Atest_cases/cube8 | 12++++++++++++
Atest_cases/cube9 | 12++++++++++++
12 files changed, 164 insertions(+), 3 deletions(-)

diff --git a/src/RubiksCube.java b/src/RubiksCube.java @@ -67,13 +67,36 @@ public class RubiksCube { String result = ""; BufferedReader in = new BufferedReader(file); String str; + int n=0; + String storage = ""; while ((str = in.readLine()) != null) { - result += str.trim(); + str = str.trim(); + if(str.length() > 3) { + if(n==0) { + result += str.substring(0,3); + storage += str.substring(3); + } else if(n==1) { + result += str.substring(0,3); + storage += str.substring(3); + } else if(n==2) { + result += str.substring(0,3); + result += storage.substring(0,3) + + storage.substring(6,9) + + str.substring(3,6) + + storage.substring(3,6) + + storage.substring(9,12) + + str.substring(6,9); + } + n++; + } else + result += str; } in.close(); cube = new RubiksColor[CUBE_SIDES][CUBE_SIZE][CUBE_SIZE]; setState(result); - } catch (IOException e) { + RubiksState test = new RubiksState(this); + //System.out.println(result); + } catch (Exception e) { e.printStackTrace(); } } diff --git a/src/RubiksTest.java b/src/RubiksTest.java @@ -1,3 +1,6 @@ +import java.io.FileNotFoundException; +import java.io.FileReader; + class RubiksTest { public static void main(String[] args) @@ -123,12 +126,27 @@ class RubiksTest //System.out.println(s.getHalfEdges()); //cube.printState(); - RubiksPatternTable patternTable = new RubiksPatternTable(); + /*RubiksPatternTable patternTable = new RubiksPatternTable(); try { patternTable.generateTables(); } catch (Exception e) { System.err.println(e.getMessage()); e.printStackTrace(); + } */ + + try { + RubiksCube cube0 = new RubiksCube(new FileReader("test_cases/cube0")); + RubiksCube cube1 = new RubiksCube(new FileReader("test_cases/cube1")); + RubiksCube cube2 = new RubiksCube(new FileReader("test_cases/cube2")); + RubiksCube cube3 = new RubiksCube(new FileReader("test_cases/cube3")); + RubiksCube cube4 = new RubiksCube(new FileReader("test_cases/cube4")); + RubiksCube cube5 = new RubiksCube(new FileReader("test_cases/cube5")); + RubiksCube cube6 = new RubiksCube(new FileReader("test_cases/cube6")); + RubiksCube cube7 = new RubiksCube(new FileReader("test_cases/cube7")); + RubiksCube cube8 = new RubiksCube(new FileReader("test_cases/cube8")); + RubiksCube cube9 = new RubiksCube(new FileReader("test_cases/cube9")); + } catch (FileNotFoundException e) { + e.printStackTrace(); } } } \ No newline at end of file diff --git a/test_cases/cube0 b/test_cases/cube0 @@ -0,0 +1,12 @@ + RRY + RRB + GGW +BBYRRGROG +WGBWYGOBB +WGBOWOBYB + YGW + YOO + GRW + OWR + OWY + YYO diff --git a/test_cases/cube1 b/test_cases/cube1 @@ -0,0 +1,12 @@ + OYW + WRB + RBG +YOWGWOYOO +GGYGYYRBR +BOWOGYRWR + BOB + YOG + RRG + WBY + RWW + BBG diff --git a/test_cases/cube2 b/test_cases/cube2 @@ -0,0 +1,12 @@ + OBB + GRB + RGW +YYGYWBORR +OGWRYOBBY +WWRGRYOBG + WYG + OOY + BRW + RGO + GWO + BWY diff --git a/test_cases/cube3 b/test_cases/cube3 @@ -0,0 +1,12 @@ + RRG + ORO + OWO +BWWBBBYBW +YGWGYGYBR +YGRGGBRYO + WRW + OOO + GBY + RYG + RWB + YWO diff --git a/test_cases/cube4 b/test_cases/cube4 @@ -0,0 +1,12 @@ + YGR + YRO + OYG +BBYGGWOYW +RGGRYWBBW +RGBWRWBOR + OYR + OOB + YOY + GWB + BWR + OWG diff --git a/test_cases/cube5 b/test_cases/cube5 @@ -0,0 +1,12 @@ + YGG + WRO + BOW +OBRYGRBWY +YGYGYBRBO +BRGOGOYWW + WWB + YOR + WOG + OBR + BWY + GRR diff --git a/test_cases/cube6 b/test_cases/cube6 @@ -0,0 +1,12 @@ + WGO + RRY + GGY +GBYROBROB +OGGRYWBBB +OYBRWRGBG + WRW + ROY + BYO + WGY + WWO + OWY diff --git a/test_cases/cube7 b/test_cases/cube7 @@ -0,0 +1,12 @@ + WBW + GRY + YYO +OYRGOBYBG +GGGRYYRBR +ROYROGOWY + BWW + BOR + WGG + BWO + OWB + BWR diff --git a/test_cases/cube8 b/test_cases/cube8 @@ -0,0 +1,12 @@ + ROG + WRR + YYR +GGBRBBWWW +RGYOYOGBR +YRGYOBWYY + OBO + BOG + BBR + OWG + GWY + WWO diff --git a/test_cases/cube9 b/test_cases/cube9 @@ -0,0 +1,12 @@ + BRO + ORW + YYR +WYBRRGYBY +BGYBYWOBR +WWGOGBRGB + WYW + GOO + RBY + GRO + OWG + OWG