Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public int getInversionNo() {
- int inversionNo = 0;
- for (int i = 0; i < rowNum; i++) {
- for (int j = 0; j < colmNum; j++) {
- for (int k = j + 1; k < colmNum; k++) {
- if (Board[i][k] != 0 && Board[i][j] != 0 && Board[i][k] < Board[i][j]) {
- inversionNo++;
- }
- }
- for (int k = i + 1; k < rowNum; k++) {
- for (int l = 0; l < colmNum; l++) {
- if (Board[k][l] != 0 && Board[i][j] != 0 && Board[k][l] < Board[i][j]) {
- inversionNo++;
- }
- }
- }
- }
- }
- return inversionNo;
- }
- public boolean isSolvable() {
- if (rowNum % 2 == 0) // even row
- {
- int tem;
- tem = getInversionNo() + getblankPosition().row;
- if (tem % 2 != 0) // even board has odd getInversionNo() + getblankPosition().row = true
- {
- return true;
- } else {
- return false;
- }
- } else // odd row
- {
- if (getInversionNo() % 2 != 0) // odd board has odd no of inversion = false
- {
- return false;
- } else {
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment