📄 ai.java
字号:
// 10 404
// 11 404
// 12 404
// 13 401
// 14 380
// 15 401
// 16 401
// 17 401
// 18 401
// 19 401
// 20 404
// 21 404
// 22 401
// 23 401
// 24 401;
goto _L4 _L5 _L5 _L4 _L4 _L4 _L6 _L6 _L5 _L5 _L6 _L4 _L4 _L4 _L6 _L5 _L6 _L6 _L6 _L6 _L6 _L4 _L4 _L6 _L6 _L6
_L6:
break; /* Loop/switch isn't completed */
_L5:
if(!a.c && h1.l < 0)
break; /* Loop/switch isn't completed */
_L4:
int l1;
int j2;
if(((q) (h1)).j == 1 || ((q) (h1)).j == 10 || ((z) (h1)).E <= 0)
break; /* Loop/switch isn't completed */
if(((q) (a)).j == 25)
{
l1 = ((q) (h1)).o - ((q) (a.a)).o >> 4;
j2 = ((q) (h1)).p - ((q) (a.a)).p >> 4;
} else
{
l1 = ((q) (h1)).o - ((q) (a)).o >> 4;
j2 = ((q) (h1)).p - ((q) (a)).p >> 4;
}
l1 = 18 + l1;
j2 = 18 + j2;
if(!a(l1, j2))
break; /* Loop/switch isn't completed */
if(h1.e == 0 && h1.f == 0) goto _L8; else goto _L7
_L7:
if(q.a(h1.e) <= q.a(h1.f) << 1)
{
if(q.a(h1.f) > q.a(h1.e) << 1)
{
aa.a.drawLine(226 + l1, (1 + j2) - 1, 226 + l1, 1 + j2 + 2);
aa.a.drawLine((226 + l1) - 1, (1 + j2) - 1, (226 + l1) - 1, 1 + j2 + 2);
break; /* Loop/switch isn't completed */
}
if(h1.e * h1.f <= 0)
{
aa.a.drawLine((226 + l1) - 1, 1 + j2 + 1, 226 + l1 + 1, (1 + j2) - 1);
aa.a.drawLine((226 + l1) - 1, 1 + j2, 226 + l1 + 1, (1 + j2) - 2);
} else
{
aa.a.drawLine((226 + l1) - 1, (1 + j2) - 1, 226 + l1 + 1, 1 + j2 + 1);
aa.a.drawLine((226 + l1) - 1, (1 + j2) - 2, 226 + l1 + 1, 1 + j2);
}
break; /* Loop/switch isn't completed */
}
goto _L9
_L8:
((q) (h1)).a_;
JVM INSTR tableswitch 0 3: default 995
// 0 931
// 1 931
// 2 864
// 3 864;
goto _L10 _L9 _L9 _L11 _L11
_L10:
break; /* Loop/switch isn't completed */
_L11:
aa.a.drawLine(226 + l1, (1 + j2) - 1, 226 + l1, 1 + j2 + 2);
aa.a.drawLine((226 + l1) - 1, (1 + j2) - 1, (226 + l1) - 1, 1 + j2 + 2);
break; /* Loop/switch isn't completed */
_L9:
aa.a.drawLine((226 + l1) - 1, 1 + j2, 226 + l1 + 2, 1 + j2);
aa.a.drawLine((226 + l1) - 1, (1 + j2) - 1, 226 + l1 + 2, (1 + j2) - 1);
j1++;
goto _L12
_L1:
aa.a.setColor(255, 255, 255);
aa.a.drawRect(244, 19, 2, 2);
g g1;
(g1 = aa.a[9]).a(11, 226, 1, 0, e1, true, 0);
g1.a(11, 226, 1 + g1.b[11], 1, e1, true, 0);
return;
}
private static boolean a(int i1, int j1)
{
if(i1 < 2 || j1 < 2 || i1 > 38 || j1 > 38)
return false;
short word0 = (short)(19 - i1);
short word1 = (short)(19 - j1);
return word0 * word0 + word1 * word1 < 256;
}
private void m()
{
int i1 = a.a + (a.i >> 1);
int j1 = a.b + (a.j >> 1);
d = 0;
e = 0;
a[d++] = a;
int l1 = i1 - 600;
int i2 = j1 - 600;
int j2 = i1 + 600;
int k2 = j1 + 600;
label0:
for(int k1 = 1; k1 < b; k1++)
{
if(c[k1] == 0)
continue;
q aq[] = a[k1];
int l2 = 0;
do
{
if(l2 >= c[k1])
continue label0;
q q1 = aq[l2];
if(k1 == 1 && ((z) ((h)q1)).a.b == 21)
{
if(d < 512)
{
a[d++] = q1;
q1.a_();
}
} else
if(q1.o <= j2 && q1.o >= l1 && q1.p >= i2 && q1.p <= k2)
switch(k1)
{
case 3: // '\003'
case 5: // '\005'
case 7: // '\007'
case 9: // '\t'
case 11: // '\013'
case 12: // '\f'
default:
break;
case 2: // '\002'
if(e < 200)
a[e++] = (x)q1;
break;
case 4: // '\004'
ah ah1;
if((ah1 = (ah)q1).a == 5 || ah1.a == 6 || ah1.a == 7 || ah1.a == 8)
break;
if(ah1.a == 3)
ah1.p = (short)(((z) (ah1)).r + 50);
// fall through
case 1: // '\001'
case 6: // '\006'
case 8: // '\b'
case 10: // '\n'
case 13: // '\r'
if(d < 512)
{
a[d++] = q1;
q1.a_();
}
break;
}
l2++;
} while(true);
}
}
public final void b()
{
int i1 = a.a + (a.i >> 1);
int j1 = a.b + (a.j >> 1);
e = 0;
int k1 = i1 - 600;
int l1 = j1 - 600;
int i2 = i1 + 600;
int j2 = j1 + 600;
q aq[] = a[2];
for(int k2 = 0; k2 < c[2]; k2++)
{
q q1;
if((q1 = aq[k2]).o <= i2 && q1.o >= k1 && q1.p >= l1 && q1.p <= j2 && e < 200)
a[e++] = (x)q1;
}
}
private void n()
{
for(int i1 = 0; i1 < c; i1++)
{
z az[] = a[i1];
for(int j1 = 0; j1 < 16; j1++)
{
z z1;
if((z1 = az[j1]).i && d < 512 && ((q) (z1)).i != 67)
a[d++] = z1;
}
}
}
private void o()
{
int ai1[] = new int[a.j + 50];
int ai2[] = new int[d];
for(int i1 = 0; i1 < d; i1++)
{
int k2;
if((k2 = a[i1].p - a.b) < 0 || k2 >= a.j + 50)
ai1[0]++;
else
ai1[a[i1].p - a.b]++;
}
for(int j1 = 1; j1 < a.j + 50; j1++)
ai1[j1] += ai1[j1 - 1];
for(int k1 = 0; k1 < d; k1++)
{
int l2;
if((l2 = a[k1].p - a.b) < 0 || l2 >= a.j + 50)
l2 = 0;
ai2[--ai1[l2]] = k1;
}
for(int l1 = 0; l1 < d; l1++)
{
if(ai2[l1] == l1)
continue;
int i2 = l1;
q q1 = a[i2];
int j2;
for(; ai2[i2] != l1; ai2[j2] = j2)
{
a[i2] = a[ai2[i2]];
j2 = i2;
i2 = ai2[i2];
}
a[i2] = q1;
ai2[i2] = i2;
}
}
private void h(int i1)
{
for(int j1 = 0; j1 < d; j1++)
{
q q1;
(q1 = a[j1]).a(i1);
}
}
private void i(e e1)
{
int i1 = aa.k;
for(int j1 = 0; j1 < d; j1++)
{
q q1 = a[j1];
if(i1 == 18)
continue;
if(q1.i == 4)
{
if(((ah)q1).a == 3)
{
q1.p = ((z) ((ah)q1)).r;
q1.b(e1);
q1.p = (short)(((z) ((ah)q1)).r + 50);
} else
{
q1.b(e1);
}
} else
{
q1.b(e1);
}
}
}
private void j(e e1)
{
for(int i1 = 0; i1 < d; i1++)
{
q q1;
(q1 = a[i1]).a(e1);
}
}
public final void a(short word0, short word1, short word2, short word3)
{
a[c++] = aa.a(word0, word1);
a[c++] = aa.a(word0, word3);
a[c++] = aa.a(word2, word1);
a[c++] = aa.a(word2, word3);
a[c++] = aa.a(word0, word1);
a[c++] = aa.a(word2, word1);
a[c++] = aa.a(word0, word3);
a[c++] = aa.a(word2, word3);
}
private void p()
{
c = 0;
short word0 = c[7];
for(int i1 = 0; i1 < word0; i1++)
{
af af1;
if((af1 = (af)a[7][i1]).a != 0)
continue;
if(((q) (a)).j == 25)
af1.a(((q) (a.a)).o - 512, ((q) (a.a)).p - 512, ((q) (a.a)).o + 512, ((q) (a.a)).p + 512);
af1.a(((q) (a)).o - 512, ((q) (a)).p - 512, ((q) (a)).o + 512, ((q) (a)).p + 512);
}
short word1 = c[11];
for(int j1 = 0; j1 < word1; j1++)
((j)a[11][j1]).a_();
if(p == 1)
a(a.a, a.b, (short)((a.a + a.i) - 1), (short)((a.b + a.j) - 1));
}
public final q a(int i1, int j1, int k1, int l1)
{
boolean flag = false;
for(int i2 = 0; i2 < d; i2++)
{
q q1;
if((q1 = a[i2]).i == 1 && ((z) ((h)q1)).E > 0 && q1.j != 1 && q1.j != 10 && q1.j != 18 && ((z) ((h)q1)).a.b != 11 && ((z)q1).a(i1, j1, k1, l1))
return q1;
}
return null;
}
public final boolean a(int i1, int j1, int k1, int l1, short word0)
{
int i2 = (i1 >= h ? 0 : 0x8) | (i1 <= j ? 0 : 0x4) | (j1 >= i ? 0 : 0x2) | (j1 <= k ? 0 : 0x1);
int j2 = (k1 >= h ? 0 : 0x8) | (k1 <= j ? 0 : 0x4) | (l1 >= i ? 0 : 0x2) | (l1 <= k ? 0 : 0x1);
do
{
if((i2 | j2) == 0)
break;
if((i2 & j2) != 0)
return false;
int k2 = k1 - i1;
int l2 = l1 - j1;
if(i2 != 0)
{
if((i2 & 0x8) != 0)
{
j1 += ((h - i1) * l2) / k2;
i1 = h;
} else
if((i2 & 0x4) != 0)
{
j1 += ((j - i1) * l2) / k2;
i1 = j;
} else
if((i2 & 0x2) != 0)
{
i1 += ((i - j1) * k2) / l2;
j1 = i;
} else
if((i2 & 0x1) != 0)
{
i1 += ((k - j1) * k2) / l2;
j1 = k;
}
i2 = (i1 >= h ? 0 : 0x8) | (i1 <= j ? 0 : 0x4) | (j1 >= i ? 0 : 0x2) | (j1 <= k ? 0 : 0x1);
} else
if(j2 != 0)
{
if((j2 & 0x8) != 0)
{
l1 += ((h - k1) * l2) / k2;
k1 = h;
} else
if((j2 & 0x4) != 0)
{
l1 += ((j - k1) * l2) / k2;
k1 = j;
} else
if((j2 & 0x2) != 0)
{
k1 += ((i - l1) * k2) / l2;
l1 = i;
} else
if((j2 & 0x1) != 0)
{
k1 += ((k - l1) * k2) / l2;
l1 = k;
}
j2 = (k1 >= h ? 0 : 0x8) | (k1 <= j ? 0 : 0x4) | (l1 >= i ? 0 : 0x2) | (l1 <= k ? 0 : 0x1);
}
} while(true);
if(word0 != -1 && d < 63)
d[d++] = word0;
return true;
}
private int a(int i1, int j1, int k1, int l1)
{
h = i1;
i = j1;
j = k1;
k = l1;
d = 0;
for(int i2 = 0; i2 < c; i2 += 2)
a(aa.a(a[i2]) << 6, aa.b(a[i2]) << 6, aa.a(a[i2 + 1]) << 6, aa.b(a[i2 + 1]) << 6, (short)i2);
return d;
}
public static boolean a(int i1, int j1, int k1, int l1, int i2, int j2, int k2, int l2,
int ai1[])
{
int i3 = i1;
int j3 = j1;
int k3 = k1;
int l3 = l1;
if(i1 > k1)
{
int i4 = i3;
i3 = k3;
k3 = i4;
}
if(j1 > l1)
{
int j4 = j3;
j3 = l3;
l3 = j4;
}
int k4 = i2;
int l4 = j2;
int i5 = k2;
int j5 = l2;
if(i2 > k2)
{
int k5 = k4;
k4 = i5;
i5 = k5;
}
if(j2 > l2)
{
int l5 = l4;
l4 = j5;
j5 = l5;
}
if(i3 > i5 || k3 < k4 || j3 > j5 || l3 < l4)
return false;
int i6 = k1 - i1;
int j6 = l1 - j1;
int k6 = k2 - i2;
int l6 = l2 - j2;
int i7 = i2 - i1;
int j7 = j2 - j1;
int k7;
int l7;
if((l7 = (k7 = j6 * k6 - i6 * l6) < 0 ? -k7 : k7) >> 6 == 0)
return false;
int i8 = j7 * k6 - i7 * l6;
int j8 = i6 * j7 - j6 * i7;
if(k7 < 0)
{
if(i8 > 0 || j8 > 0)
return false;
if(i8 < k7 || j8 < k7)
return false;
} else
{
if(i8 < 0 || j8 < 0)
return false;
if(i8 > k7 || j8 > k7)
return false;
}
if(ai1 != null)
ai1[0] = i8 / (k7 >> 6);
return true;
}
private boolean a(int i1, int j1, int k1, int l1, int ai1[], int ai2[])
{
int i2 = 512;
for(int j2 = 0; j2 < d; j2++)
{
short word0 = d[j2];
int k2 = aa.a(a[word0]) << 6;
int l2 = aa.b(a[word0]) << 6;
int i3 = aa.a(a[word0 + 1]) << 6;
int j3 = aa.b(a[word0 + 1]) << 6;
int ai3[] = new int[1];
if(a(i1, j1, k1, l1, k2, l2, i3, j3, ai3) && ai3[0] < i2)
{
ai1[0] = i2 = ai3[0];
ai2[0] = word0;
}
}
return i2 != 512;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -