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 + -
显示快捷键?