home *** CD-ROM | disk | FTP | other *** search
- package algorithm;
-
- import config.b;
- import util.a;
-
- // $FF: renamed from: algorithm.e
- public final class class_0 {
- // $FF: renamed from: a algorithm.g
- g field_0 = new g();
-
- protected class_0(int var1) {
- this.method_3(var1);
- }
-
- // $FF: renamed from: a () algorithm.g
- protected final g method_0() {
- return this.field_0;
- }
-
- // $FF: renamed from: a (int, int) int
- private static int method_1(int var0, int var1) {
- return g.a(var0, var1);
- }
-
- // $FF: renamed from: a (int, int, int) boolean
- private boolean method_2(int var1, int var2, int var3) {
- if (this.field_0.e[var1][var2] == 0) {
- return false;
- } else {
- this.field_0.b(var1, var2);
-
- for(int var5 = 1; var5 <= 9; ++var5) {
- if (var5 != var3 && this.field_0.a(var1, var2, var5)) {
- this.field_0.b(var1, var2, var3);
- return false;
- }
- }
-
- return true;
- }
- }
-
- // $FF: renamed from: a (int) void
- private void method_3(int var1) {
- if (var1 == 0) {
- this.method_4();
- } else {
- int[] var2 = new int[]{0, 5700, 5800, 40000};
- if (var1 < 0) {
- var1 = 1;
- }
-
- if (var1 > 3) {
- var1 = 3;
- }
-
- String var4 = (new c()).a(var2[var1 - 1], var2[var1]);
- int var6 = 0;
- this.field_0.a();
-
- for(int var7 = 0; var7 < 9; ++var7) {
- for(int var8 = 0; var8 < 9; ++var6) {
- if (var4.charAt(var6) == '\n') {
- ++var6;
- }
-
- int var5 = var4.charAt(var6) == '.' ? 0 : var4.charAt(var6) - 48;
- this.field_0.b(var7, var8, var5);
- ++var8;
- }
- }
-
- }
- }
-
- // $FF: renamed from: b () void
- private void method_4() {
- int var1 = 0;
- int var2 = b.c;
- int[] var8 = new int[10];
- int[] var9 = new int[10];
- int[] var10 = new int[10];
-
- do {
- this.field_0.a();
- var1 = 0;
-
- for(int var11 = 0; var11 < 10; ++var11) {
- var8[var11] = 0;
- var10[var11] = 0;
- var9[var11] = 0;
- }
-
- label152:
- while(var1 < var2) {
- int var3 = a.a(0, 8);
- if (var8[var3] < 4) {
- int var5 = 0;
-
- while(true) {
- int var4 = a.a(0, 8);
- if (var10[var4] < 4 && var9[method_1(var3, var4)] < 4) {
- int var6 = 0;
-
- while(true) {
- int var7 = a.a(1, 9);
- if (this.field_0.a(var3, var4, var7)) {
- int var10002 = var8[var3]++;
- var10002 = var10[var4]++;
- ++var9[method_1(var3, var4)];
- this.field_0.b(var3, var4, var7);
- ++var1;
- continue label152;
- }
-
- ++var6;
- if (var6 >= 10) {
- continue label152;
- }
- }
- }
-
- ++var5;
- if (var5 >= 10) {
- break;
- }
- }
- }
- }
- } while(!(new f(this.field_0)).b());
-
- this.field_0 = (new f(this.field_0)).a();
- var1 = 0;
- boolean[][] var22 = new boolean[10][10];
- boolean[][] var12 = new boolean[10][10];
- boolean[][] var13 = new boolean[10][10];
-
- for(int var14 = 0; var14 < 10; ++var14) {
- var8[var14] = 9;
- var10[var14] = 9;
- var9[var14] = 9;
-
- for(int var15 = 0; var15 < 10; ++var15) {
- var22[var14][var15] = false;
- var12[var14][var15] = false;
- var13[var14][var15] = false;
- }
- }
-
- var2 = 81 - b.c;
-
- for(int var23 = 0; var1 < var2 && var23 < 3; ++var23) {
- for(int var17 = 0; var17 < 9; ++var17) {
- for(int var18 = 0; var18 < 9; ++var18) {
- int var24 = a.a(0, 8);
- int var16 = a.a(0, 8);
- if (var8[var24] > 3 && var10[var16] > 3 && var9[method_1(var24, var16)] > 3 && this.method_2(var24, var16, this.field_0.e[var24][var16])) {
- this.field_0.b(var24, var16);
- int var30 = var8[var24]--;
- var30 = var10[var16]--;
- --var9[method_1(var24, var16)];
- var23 = 0;
- ++var1;
- }
- }
- }
- }
-
- for(int var25 = 0; var25 < 9; ++var25) {
- for(int var27 = 0; var27 < 9; ++var27) {
- if (var8[var25] > 3 && var10[var27] > 3 && var9[method_1(var25, var27)] > 3 && this.method_2(var25, var27, this.field_0.e[var25][var27])) {
- this.field_0.b(var25, var27);
- int var32 = var8[var25]--;
- var32 = var10[var27]--;
- var32 = var9[method_1(var25, var27)]--;
- }
- }
- }
-
- for(int var26 = 0; var26 < 9; ++var26) {
- for(int var28 = 0; var28 < 9; ++var28) {
- if (this.field_0.e[var26][var28] != 0) {
- this.field_0.a[var26][var28] = true;
- }
- }
- }
-
- }
- }
-