Lab8-Puzzle15


5530514021  น.ส.วริศรา ปัญจภาคย์กุล (COM22000) (9/19/2012 (12:30:23 PM))

MiniQuiz + TestScript
JLab>javac FifteenPuzzle.java
JLab>
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 count = 0;
    int i = 0;
    int d = -1;
    int a[] = new int[b.length * b[0].length];
   //while (i < a.length) {
       for (int j = 0; j < b.length; j++) {
         for (int k = 0; k < b[0].length; k++) {
           if (b[j][k] != 0) {
             a[i] = b[j][k];
             i++;
           } else {
             d = j + 1;
           }
        }
      }
   //}
   for (int j = 0; j < a.length; j++) {
    // System.out.println("a[" + j + "] = " + a[j]);
    }
    for (int m = 0; m < a.length; m++) {
      for (int n = m + 1; n < a.length; n++) {
        if (a[m] > a[n] && a[m] != 0 && a[n] != 0) count++;
      }
    }
   // System.out.println("count =  " + count);
    if ((d + count) % 2 != 0) return false;
    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=1, CM=36, ST=66, KY=1132, TR=60:00
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;