h.java
来自「用J2ME开发的一个类似于帝国游戏的小游戏软件。」· Java 代码 · 共 335 行
JAVA
335 行
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
public final class h
implements Runnable
{
public boolean a;
public int b;
public int c;
public int d[];
public int e[];
public short f[];
public int g;
public int h;
public int i;
public int j;
public int k;
public int l;
public int m;
public int n;
public int o;
public int p;
public int q;
public int r;
public int s;
public boolean t;
public boolean u;
public int v;
public int w;
public int x;
public int y;
public h()
{
a = false;
c = 0;
w = 0;
x = 0;
y = 270;
}
public final void run()
{
while(!b()) ;
a = true;
}
public final void a(int i1, int j1, short aword0[], boolean flag)
{
if(v == 0)
v = j.by << 8 | j.bz;
u = flag;
f = aword0;
b = i1;
d = new int[b << 2];
e = new int[4];
for(int k1 = 0; k1 < 4096; k1++)
f[k1] = 768;
g = j.A() & 0x3f;
h = j.A() & 0x3f;
g = 32;
h = 32;
i = g;
j = h;
k = 0;
c = 0;
}
public final void a()
{
d = null;
e = null;
}
public final boolean b()
{
w++;
x = (w << 8) / y;
switch(c)
{
case 0: // '\0'
c();
break;
case 1: // '\001'
e();
break;
case 2: // '\002'
if(u)
d();
else
c++;
break;
case 3: // '\003'
f();
break;
case 4: // '\004'
e();
break;
case 5: // '\005'
g();
break;
case 6: // '\006'
e();
break;
case 7: // '\007'
h();
break;
case 8: // '\b'
e();
break;
default:
if(e.a != 0)
{
for(int i1 = 0; i1 < 4096; i1++)
if((f[i1] & 0xfff) != 768)
f[i1] |= 0x8000;
}
return true;
}
return false;
}
public final void c()
{
int l1 = j.A() << 3;
int i2 = 0;
int j2 = 0;
int i1 = 0;
do
{
if(i1 >= 9)
break;
i2 = (8 * f.c(l1) >> 16) + g;
j2 = (8 * f.b(l1) >> 16) + h;
int j1 = i2 & 0x3f;
int k1 = j2 & 0x3f;
if(j1 == i2 && k1 == j2)
break;
i1++;
l1 += 256;
} while(true);
if(i1 > 8)
{
g = i;
h = j;
} else
{
g = i2;
h = j2;
}
d[k++] = g;
d[k++] = h;
if(k >= b << 1)
{
l = 0;
m = 0;
n = b;
o = 0;
p = 0x10000;
q = 0;
r = 512;
s = 0;
t = true;
c++;
}
}
public final void d()
{
j.A();
boolean flag = false;
int i1;
int j1;
do
{
i1 = j.A() & 0x3f;
j1 = j.A() & 0x3f;
} while(i1 >= 64 || j1 >= 64 || f[i1 + (j1 << 6)] != 0);
e[0] = i1;
e[1] = j1;
boolean flag1 = false;
do
{
int k1 = j.A() << 3;
int l1 = j.A() % 15;
i1 = (f.c(k1) * (20 + l1) >> 16) + e[0];
j1 = (f.b(k1) * (20 + l1) >> 16) + e[1];
} while(i1 < 0 || j1 < 0 || i1 >= 64 || j1 >= 64 || f[i1 + (j1 << 6) & 0xfff] != 0);
e[2] = i1;
e[3] = j1;
c++;
}
public final void e()
{
for(int i3 = 0; i3 < 64; i3++)
{
l++;
if(l == 64)
{
l = 0;
m++;
if(m >= 64)
{
c++;
return;
}
}
int i2 = 0;
int j2 = 0;
boolean flag = false;
for(int j3 = 0; j3 < n; j3++)
{
int i1 = l - d[j2++];
int k1 = m - d[j2++];
int k2;
if((k2 = i1 * i1 + k1 * k1) == 0)
i2 += p;
else
i2 += p / k2;
}
j2 = 0;
for(int k3 = 0; k3 < o; k3++)
{
int j1 = l - e[j2++];
int l1 = m - e[j2++];
int l2;
if((l2 = j1 * j1 + l1 * l1) == 0)
i2 -= q;
else
i2 -= q / l2;
}
if(i2 < r)
continue;
int l3 = l + (m << 6) & 0xfff;
if(s == 0)
{
f[l3] &= 0xf000;
continue;
}
if(!t && (f[l3] & 0xfff) != 0 || (f[l3] & 0xfff) == 768)
continue;
if(s == 768)
{
f[l3] = 768;
continue;
}
f[l3] &= 0xf000;
if((i2 >>= 8) > 31)
i2 = 31;
i2 <<= 2;
f[l3] |= (short)(0x300 | s & 0xff | i2);
}
}
public final void a(int i1)
{
for(int l1 = 0; l1 < i1; l1++)
{
int j1;
int k1;
do
{
j1 = j.A() & 0x3f;
k1 = j.A() & 0x3f;
} while(f[j1 + (k1 << 6) & 0xfff] != 0);
d[l1 << 1] = j1;
d[(l1 << 1) + 1] = k1;
}
}
public final void f()
{
l = 0;
m = 0;
n = b;
o = 2;
p = 0x10000;
q = 0x30000;
r = 4096;
s = 1;
t = false;
c++;
a(n);
}
public final void g()
{
l = 0;
m = 0;
n = b >> 1;
o = 2;
p = 0x10000;
q = 0x40000;
r = 8192;
s = 2;
t = false;
c++;
a(n);
}
public final void h()
{
l = 0;
m = 0;
n = b >> 1;
o = 2;
p = 0x10000;
q = 0x40000;
r = 8192;
s = 3;
t = false;
c++;
a(n);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?