⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dssnake

📁 DsSnake简易贪吃蛇for j2me 手机游戏源码
💻
📖 第 1 页 / 共 2 页
字号:
DS_Snake.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class DS_Snake extends MIDlet
    implements CommandListener
{

    public DS_Snake()
    {
        _fld6h = new Command("Exit", 1, 0);
        _fld7h = new Command("Start", 1, 0);
        _fld8h = new Command("Quit", 1, 0);
        _fld9h = new Command("Select", 1, 0);
        _fld0i = new Command("Continue", 1, 0);
        _fld1i = new Command("Pause", 1, 0);
        _fld1 = Display.getDisplay(this);
        _fld5h = new dsCanvas(_fld1);
        _fld5h.addCommand(_fld7h);
        _fld5h.addCommand(_fld6h);
        _fld5h.setCommandListener(this);
    }

    public void commandAction(Command command, Displayable displayable)
    {
        if(command == _fld6h)
        {
            destroyApp(false);
            notifyDestroyed();
        } else
        if(command == _fld7h && !_fld5h._fld3d)
        {
            _fld5h.removeCommand(_fld6h);
            _fld5h.removeCommand(_fld7h);
            _fld5h.addCommand(_fld9h);
            _fld5h._fld5c = 1;
            _fld5h.setCommandListener(this);
        } else
        if(command == _fld9h)
        {
            _fld5h.removeCommand(_fld9h);
            _fld5h.addCommand(_fld8h);
            _fld5h.addCommand(_fld1i);
            _fld5h._mth8b();
            _fld5h._fld5c = 2;
            _fld5h.setCommandListener(this);
        } else
        if(command == _fld1i)
        {
            _fld5h.removeCommand(_fld8h);
            _fld5h.removeCommand(_fld1i);
            _fld5h.addCommand(_fld0i);
            _fld5h._fld5c = 5;
            _fld5h.setCommandListener(this);
        } else
        if(command == _fld0i)
        {
            _fld5h.removeCommand(_fld0i);
            _fld5h.addCommand(_fld8h);
            _fld5h.addCommand(_fld1i);
            _fld5h._fld5c = 3;
            _fld5h.setCommandListener(this);
        } else
        if(command == _fld8h)
        {
            _fld5h.removeCommand(_fld1i);
            _fld5h.removeCommand(_fld8h);
            _fld5h.addCommand(_fld7h);
            _fld5h.addCommand(_fld6h);
            _fld5h._fld5c = 0;
            _fld5h.setCommandListener(this);
        }
    }

    public void destroyApp(boolean flag)
    {
        _fld1.setCurrent(null);
        _fld5h._mth5();
    }

    public void pauseApp()
    {
        _fld5h._mth9b();
    }

    public void startApp()
        throws MIDletStateChangeException
    {
        _fld5h._mth4c();
    }

    Display _fld1;
    dsCanvas _fld5h;
    private Command _fld6h;
    private Command _fld7h;
    private Command _fld8h;
    private Command _fld9h;
    private Command _fld0i;
    private Command _fld1i;
}
dsCanvas.java
import java.util.Calendar;
import java.util.Random;
import javax.microedition.lcdui.*;

public class dsCanvas extends Canvas
    implements Runnable
{

    public dsCanvas(Display display)
    {
        _fld3b = false;
        _fld4b = false;
        _fld8b = new String();
        _fld0c = new String();
        _fld6c = 50;
        _fld7c = "DS Snake";
        _fld8c = "Press start to play";
        _fld9c = "Game Over!";
        _fld0d = "Choose Speed";
        _fld1d = "Demo version!";
        _fld2d = "You can play again";
        _fld3f = 0;
        _fld5f = "Score";
        _fld7f = "000000";
        _fld7g = 0;
        _fld8g = false;
        _fld1h = 0;
        _fld2h = 0;
        _fld3h = 0;
        _fld4h = false;
        _fld1 = display;
        _fld2 = getWidth();
        _fld3 = getHeight();
        _fld7 = Image.createImage(_fld2, _fld3);
        _fld8 = _fld7.getGraphics();
        _fld1b = true;
        _fld9b = new byte[17];
        _fld1c = new byte[17];
        _mth8();
        if(_fld2 >= 200 && _fld3 >= 200)
            _fld5 = Font.getFont(0, 0, 0);
        else
            _fld5 = Font.getFont(0, 0, 8);
        _fld6 = _fld5.getHeight() + 1;
        if(display.isColor())
            _fld3b = true;
        if(display.numColors() > 4)
            _fld4b = true;
        _mth9();
        _fld6b = _fld2 >> 1;
        _fld7b = _fld3 >> 1;
        _fld5b = 0;
        _mth2b();
        _fld2c = Font.getFont(0, 1, 8);
        _fld3c = Font.getFont(0, 1, 0);
        _fld4c = Font.getFont(0, 1, 16);
        _fld4 = _fld6;
        _mth1b();
        if(display.numColors() > 2)
        {
            _fld7d = 255;
            _fld8d = 0xffffff;
            _fld9d = 0xffff00;
            _fld0e = 0xffffff;
            _fld1e = 0;
            _fld2e = 0xffffff;
            _fld3e = 255;
            _fld4e = 255;
            _fld5e = 0xffffff;
            _fld6e = 0xffffff;
            _fld7e = 0;
            _fld8e = 32512;
            _fld9e = 0xff0000;
        } else
        {
            _fld7d = 0;
            _fld8d = 0xffffff;
            _fld9d = 0xffffff;
            _fld0e = 0xffffff;
            _fld1e = 0;
            _fld2e = 0xffffff;
            _fld3e = 0;
            _fld4e = 0;
            _fld5e = 0xffffff;
            _fld6e = 0xffffff;
            _fld7e = 0;
            _fld8e = 0;
            _fld9e = 0;
        }
        _fld0f = 2;
        _fld1f = 11;
        _fld4f = Math.min(_fld2, _fld3 - _fld4) / _fld1f;
        if(_fld4f > 2)
            _fld6g = _fld4f - 1;
        else
            _fld6g = _fld4f;
        _fld4f = Math.min(_fld2, _fld3 - _fld4) / _fld1f;
        if(_fld4f > 2)
            _fld6g = _fld4f - 1;
        else
            _fld6g = _fld4f;
        _fld9f = new int[60];
        _fld0g = new int[60];
        _fld4g = new int[4];
        _fld5g = new int[4];
    }

    void _mth0b()
    {
        if(_fld5c == 0)
        {
            _fld4d = Calendar.getInstance();
            _fld5d = _fld4d.get(12) % 10;
            _fld6d = _fld4d.get(13);
            if(_fld5d < 5)
                _fld3d = true;
            else
                _fld3d = false;
            if(!_fld3d)
                _mth7b();
            else
                _mth4();
        } else
        if(_fld5c == 1)
            _mth3c();
        else
        if(_fld5c == 2)
            _mth5b();
        else
        if(_fld5c == 3)
            _mth4b();
        else
        if(_fld5c == 4)
            _mth3b();
    }

    void _mth0c()
    {
        _mth2c();
        while(_fld3g == _fld0g[0]) 
            _mth2c();
        for(int i = 0; i < _fld9g[_fld1h]; i++)
            while(_fld3g == _fld5g[i]) 
                _mth2c();

    }

    void _mth1()
    {
        if(_fld9f[0] + _fld4f > _fld2g && _fld9f[0] < _fld2g + _fld4f && _fld0g[0] + _fld4f > _fld3g && _fld0g[0] < _fld3g + _fld4f)
        {
            _fld6f += 10;
            if(_fld6f < 10)
                _fld7f = "00000" + _fld6f;
            else
            if(_fld6f >= 10 && _fld6f < 100)
                _fld7f = "0000" + _fld6f;
            else
            if(_fld6f >= 100 && _fld6f < 1000)
                _fld7f = "000" + _fld6f;
            else
            if(_fld6f >= 1000 && _fld6f < 10000)
                _fld7f = "00" + _fld6f;
            else
            if(_fld6f >= 10000 && _fld6f < 0x186a0)
                _fld7f = "0" + _fld6f;
            else
                _fld7f = "999999";
            _fld7g = 10;
            _fld8g = true;
            if(_fld1g > _fld0h[_fld1h])
            {
                _fld2h++;
                _fld4h = false;
                _fld5c = 2;
            } else
            {
                _fld1g++;
                _mth0c();
            }
        }
    }

    void _mth1b()
    {
        if(_fld9b[4] != 100 || _fld1c[4] != 68 || _fld9b[11] != 116 || _fld1c[16] != 97)
            _fld1b = false;
    }

    void _mth1c()
    {
        for(int i = 0; i < _fld9g[_fld1h]; i++)
        {
            _fld4g[i] = Math.abs(_fld9.nextInt() % (_fld2 - _fld4f - _fld4f - _fld4f));
            _fld5g[i] = Math.abs(_fld9.nextInt() % (_fld3 - _fld4f - _fld4 - _fld4f - _fld4f));
            _fld4g[i] = _fld4f * (_fld4g[i] / _fld4f) + _fld4f;
            _fld5g[i] = _fld4f * (_fld5g[i] / _fld4f) + _fld4 + _fld4f;
            if(_fld5g[i] == _fld0g[0] || _fld5g[i] == _fld3g)
                _fld5g[i] += _fld4f;
        }

    }

    void _mth2()
    {
        for(int i = 0; i < _fld1g; i++)
        {
            for(int j = 0; j < _fld9g[_fld1h]; j++)
                if(_fld9f[i] + _fld4f > _fld4g[j] && _fld9f[i] < _fld4g[j] + _fld4f && _fld0g[i] + _fld4f > _fld5g[j] && _fld0g[i] < _fld5g[j] + _fld4f)
                    _mth3();

        }

    }

    void _mth2b()
    {
        if(_fld9b[5] != 115 || _fld1c[11] != 99 || _fld9b[15] != 111 || _fld1c[12] != 105)
            _fld1b = false;
    }

    void _mth2c()
    {
        _fld2g = Math.abs(_fld9.nextInt() % (_fld2 - _fld4f - _fld4f - _fld4f));
        _fld3g = Math.abs(_fld9.nextInt() % (_fld3 - _fld4f - _fld4 - _fld4f - _fld4f));
        _fld2g = _fld4f * (_fld2g / _fld4f) + _fld4f;
        _fld3g = _fld4f * (_fld3g / _fld4f) + _fld4 + _fld4f;
    }

    void _mth3()
    {
        _fld7g = 0;
        _fld8g = true;
        _fld4h = true;
        _fld2f--;
        if(_fld2f == 0)
            _fld5c = 4;
        else
            _fld5c = 2;
    }

    void _mth3b()
    {
        _mth7();
        _mth6(_fld9c, _fld2c, _fld9e, _fld6e, _fld6b, ((_fld3 - _fld4 >> 1) + _fld4) - (_fld2c.getHeight() >> 1));
    }

    void _mth3c()
    {
        _fld8.setColor(_fld0e);
        _fld8.fillRect(0, 0, _fld2, _fld3);
        _fld8.setFont(_fld2c);
        int i = _fld2c.getHeight();
        _fld8.setColor(_fld1e);
        _fld8.drawString(_fld0d, _fld6b, _fld7b - i - i, 17);
        int j = _fld2c.stringWidth(_fld0d);
        int k = j >> 1;
        int l = 0;
        int i1 = 0;
        int j1 = 0;
        switch(_fld0f)
        {
        case 1: // '\001'
            _fld6c = 70;
            l = _fld2e;
            i1 = _fld3e;
            j1 = _fld3e;
            break;

        case 2: // '\002'
            _fld6c = 35;
            l = _fld3e;
            i1 = _fld2e;
            j1 = _fld3e;
            break;

        case 3: // '\003'
            _fld6c = 10;
            l = _fld3e;
            i1 = _fld3e;
            j1 = _fld2e;
            break;
        }
        _fld8.setColor(_fld3e);
        _fld8.fillRect((_fld6b - k) + 2, (_fld7b - (2 - _fld0f) * i) + 2, j - 3, i - 3);
        _fld8.setColor(l);
        _fld8.drawString("Slow", _fld6b, (_fld7b - i) + 1, 17);
        _fld8.setColor(i1);
        _fld8.drawString("Medium", _fld6b, _fld7b + 1, 17);
        _fld8.setColor(j1);
        _fld8.drawString("Fast", _fld6b, _fld7b + i + 1, 17);
        _fld8.setColor(_fld1e);
        _fld8.drawRect(_fld6b - k, _fld7b - i, j, 3 * i);
    }

    void _mth4()
    {
        _fld8.setColor(_fld7d);
        _fld8.fillRect(0, 0, _fld2, _fld3);
        _fld8.setFont(_fld2c);
        _fld8.setColor(_fld9d);
        int i = _fld7b >> 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -