Lab8-Puzzle15


5530221121  นายธนพล ไกรลาศรัตนศิริ (COM21900) (2/6/2013 (3:51:04 PM))

MiniQuiz + TestScript
JLab>java Selftest 

JLab> testPuzzle15 : ok ok ok ok ok ok ok ok ok ok  (10.0/10.0)
JLab> : -----------------------------
JLab> : ?????? 10.0 ????? (???? 10.0)
JLab> : -----------------------------
JLab> :<POINT>10.0</POINT> (<TOTAL>10.0</TOTAL> )
JLab>

ได้ 10 คะแนน
Source Code
public class FifteenPuzzle {
  //---------------------------------------------------
  public static boolean solvable15Puzzle(int[][] b) {
    int[] a = new int[(b.length*b[0].length)-1];
    int k = 0;
    int p = 0;
    
    for (int i = 0; i <= b.length-1; i++) {
      for (int j = 0; j <= b[0].length - 1; j++) {
        if (b[i][j] != 0) {
          a[k] = b[i][j];
          k++;
        } else {
          p = i+1;
        }
      }
    }
    int l = 0;
    for (int n = 0; n <= a.length-2; n++) {
      for (int m = n + 1; m <= a.length - 1; m++) {
        if (a[n] > a[m]) {
        l++;
        }
      }
    }
    if ((l + p) % 2 == 1) {
      return false;
    }else{
      return true;
    }
  }
  //---------------------------------------------------
  public static void main(String[] a) {
    int[][] ok = { { 1, 2, 3, 4 },
                    { 5, 6, 7, 8 },
                    { 9, 10, 12, 15 },
                    { 13, 14, 11, 0 } };
    int[][] nok = { { 1, 2, 3, 4 },
                    { 5, 6, 7, 8 },
                    { 9, 10, 11, 12 },
                    { 13, 15, 14, 0 } };
    System.out.println(solvable15Puzzle(ok));
    System.out.println(solvable15Puzzle(nok));

  }
}

SM=0, CM=5, ST=6, KY=521, TR=60:00
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;