public class FifteenPuzzle {
//---------------------------------------------------
public static boolean solvable15Puzzle(int[][] b) {
int c = 0, a = 0;
int[] x = new int[16];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++) {
x[a] = b[i][j];
a++;
if (c == 0 && b[i][j] == 0)
c += i;
}
for (int i = 0; i < 15; i++)
for (int j = i + 1; j < 16; j++)
if (x[j] != 0 && x[i] != 0 && x[i] > x[j])
c++;
if (c % 2 == 0)
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=1, CM=24, ST=42, KY=843, 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 ;
|