예제 #1
0
파일: Twist.java 프로젝트: brianfox/rubiks
  public byte[] byteSerialize() {

    byte[] face = ArrayUtil.intToByteArray(f.val());
    byte[] dir = ArrayUtil.intToByteArray(d.val());
    byte[] s = ArrayUtil.intToByteArray(slice);
    return ArrayUtil.concatenateArrays(face, dir, s);
  }
예제 #2
0
파일: Twist.java 프로젝트: brianfox/rubiks
  @Override
  public int compareTo(Twist t) {
    int diff;

    diff = f.val() - t.f.val();
    if (diff != 0) return diff;

    diff = d.val() - t.d.val();
    if (diff != 0) return diff;

    return slice - t.slice;
  }
예제 #3
0
파일: Twist.java 프로젝트: brianfox/rubiks
 public static Twist byteDeserialize(byte[] src) {
   int face = ArrayUtil.byteArrayToInt(Arrays.copyOfRange(src, 0, 4));
   int dir = ArrayUtil.byteArrayToInt(Arrays.copyOfRange(src, 4, 8));
   int s = ArrayUtil.byteArrayToInt(Arrays.copyOfRange(src, 8, 12));
   return createTwist(Face.getFace(face), Dir.getDir(dir), s);
 }
예제 #4
0
파일: Twist.java 프로젝트: brianfox/rubiks
 @Override
 public String toString() {
   StringBuilder sb = new StringBuilder();
   sb.append(String.format("%-4s", f.toString() + d.toString() + (slice == 0 ? "" : slice)));
   return sb.toString();
 }
예제 #5
0
파일: Twist.java 프로젝트: brianfox/rubiks
 private static int getKey(Face f, Dir d, int s) {
   return (f.val() << 16) + (d.val() << 8) + s;
 }