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

📄 main.java

📁 J2ME的纸牌完整源代码及资源文件。 在WTK中设置类名
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                Score += 10;
                undo = false;
            }
        } else {
            if (MountainNum != 0 && card_index == -1) {
                MountainCtr--;
            }
            Mountain[card_index2].SetUsed(false);
            card_index = card_index2;
            MountainNum++;
        }
        HoldCardNum = 0;
    }

    private void CheckComplete() throws Exception, Error {
        String as[] = {
            "\u8FC7\u5173", "", ""
        };
        int i;
        for (i = 0; i < 4; i++) {
            if (Pack[i][12] == null) {
                break;
            }
        }

        if (i == 4) {
            DrawAll();
            as[1] = Score + " \u5206\u6570";
            as[2] = "" + (int)(((new Date()).getTime() - start_time) / 1000L);
            if (kd.s < Score) {
                kd.s = Score;
                RecordStore recordstore = null;
                try {
                    recordstore = RecordStore.openRecordStore("Klondike", false);
                    byte abyte0[] = new byte[2];
                    abyte0[0] = (byte)(Score >> 8 & 0xff);
                    abyte0[1] = (byte)(Score & 0xff);
                    recordstore.setRecord(1, abyte0, 0, abyte0.length);
                    recordstore.closeRecordStore();
                }
                catch (Exception exception) {
                    try {
                        recordstore.closeRecordStore();
                    }
                    catch (Exception exception1) { }
                }
            }
            PopupBalloon(as, 2000, df);
            quit = true;
        }
    }

    private int GameTitle() throws Exception, Error {
        byte byte0 = 0;
        setSoftLabel("\u83DC\u5355", "\u9000\u51FA");
        if (!reinit) {
            g.lock();
            g.setColor(C_BACKGROUND);
            g.fillRect(0, 0, getWidth(), getHeight());
            g.setColor(C_TEXTCOLOR);
            g.setFont(Font.getFont(64, 0, 8));
            g.drawString("\u6700\u9AD8\u5206 " + kd.s, 120, 150, 1);
            g.drawImage(i_sys[21], (getWidth() - i_sys[21].getWidth()) / 2, (getHeight() - 120) / 2 + 4);
            g.drawImage(i_sys[22], (getWidth() - 120) / 2, getHeight() - 18 - 12);
            g.unlock(true);
        }
        do {
            Thread.sleep(30L);
            synchronized (this) {
                if (SoftKey1) {
                    byte0 = 2;
                    break;
                }
                if (KeyEnter || reinit) {
                    setSoftLabel("", "");
                    reinit = false;
                    g.lock();
                    g.setColor(C_BACKGROUND);
                    g.fillRect(0, 0, getWidth(), getHeight());
                    g.setColor(C_TEXTCOLOR);
                    g.setFont(Font.getFont(64, 0, 16));
                    g.drawString("\u6D17\u724C\u4E2D", 120, 60, 1);
                    g.unlock(true);
                    Thread.sleep(1000L);
                    byte0 = 1;
                    break;
                }
                clearkey();
            }
        } while (true);
        return byte0;
    }

    private boolean CheckRedAndBlack() {
        if (VRAM[cx][cy] == null) {
            return false;
        }
        boolean flag = true;
        int i = cy;
        Card card = VRAM[cx][i];
        for (i++; VRAM[cx][i] != null && (flag = CheckColorAndNumber(i, card)); i++) {
            card = VRAM[cx][i];
        }

        return flag;
    }

    private boolean CheckColorAndNumber(int i, Card card) {
        if (card.getNum() != VRAM[cx][i].getNum() + 1) {
            return false;
        }
        if (card.IsRed()) {
            return !VRAM[cx][i].IsRed();
        }
        return VRAM[cx][i].IsRed();
    }

    private void PopupBalloon(String as[], int i, Font font) {
        g.lock();
        int l = (getHeight() - as.length * font.getHeight()) / 2;
        for (int j = 0; j < as.length; j++) {
            g.setColor(C_TEXTCOLOR);
            int k = (getWidth() - font.stringWidth(as[j])) / 2;
            g.fillRect(k, l + j * font.getHeight(), font.stringWidth(as[j]), font.getHeight());
            g.setFont(font);
            g.setColor(C_TEXTCOLOR_F);
            g.drawString(as[j], k, l + j * font.getHeight() + fN_getAscent(), 0);
        }

        g.unlock(true);
        try {
            Thread.sleep(i);
        }
        catch (Exception exception) { }
    }

    protected void keyPressed(int i) {
        int j = getGameAction(i);
        if (i == 48) {
            KeyShort = true;
        } else
        if (i == 42) {
            KeyShort2 = true;
        } else
        if (i == 35) {
            KeyShort3 = true;
        } else
        if (j == 8 || i == 53) {
            if (GameMode != 0) {
                KeyEnter = true;
            }
        } else
        if (j == 1 || i == 50) {
            KeyUp = true;
        } else
        if (j == 6 || i == 56) {
            KeyDown = true;
        } else
        if (j == 2 || i == 52) {
            KeyLeft = true;
        } else
        if (j == 5 || i == 54) {
            KeyRight = true;
        }
    }

    protected void keyReleased(int i) {
    }

    protected void keyRepeated(int i) {
    }

    public void setSoftLabel(String s, String s1) {
        if (replay != null) {
            removeCommand(replay);
        }
        if (soft1 != null) {
            removeCommand(soft1);
        }
        if (soft2 != null) {
            removeCommand(soft2);
        }
        soft1 = new Command(s, 2, 1);
        addCommand(soft1);
        soft2 = new Command(s1, 1, 1);
        addCommand(soft2);
    }

    public void commandAction(Command command, Displayable displayable) {
        if (GameMode == 0) {
            if (command == soft1) {
                Display.getDisplay(kd).setCurrent(kd.menu);
            } else
            if (command == soft2) {
                SoftKey1 = true;
            }
        } else
        if (GameMode == 1) {
            if (command.getLabel().equals("\u6094\u724C")) {
                SoftKey1 = true;
            } else
            if (command.getLabel().equals("\u91CD\u73A9")) {
                quit = true;
                GameMode = 0;
                reinit = true;
            } else
            if (command == soft2) {
                kd.Pause = true;
                kd.MakeMenu();
                Display.getDisplay(kd).setCurrent(kd.menu);
            }
        }
    }

    private void SetPBar(String s, boolean flag, int i, int j) {
        if (flag) {
            g.setColor(C_BACKGROUND);
            g.fillRect(0, 0, getWidth(), getHeight());
            g.setColor(C_TEXTCOLOR);
            g.setFont(df);
            g.drawString(s, 0, df.getHeight(), 0);
        }
        g.setColor(C_TEXTCOLOR_F);
        g.drawRect(9, 60, 102, 5);
        ProgressUnit = j - i;
    }

    private void MovePBar(int i) {
        g.setColor(C_TEXTCOLOR);
        g.fillRect(10, 61, (i * 100) / ProgressUnit, 4);
    }

    public void paint(GraphicsEx graphicsex) {
    }

    public int fN_getAscent() {
        return 0;
    }

    public int df_getDescent() {
        return 10;
    }

    int[] getPixels(Image image) {
        int i = image.getWidth();
        int j = image.getHeight();
        int ai[] = new int[i * j];
        image.getRGB(ai, 0, i, 0, 0, i, j);
        return ai;
    }

    Image drawPixels(int ai[], int i, int j) {
        return Image.createRGBImage(ai, i, j, true);
    }

    Image resizeImage(Image image, int i, int j, int k) {
        int l = image.getWidth();
        int i1 = image.getHeight();
        int ai[] = new int[i * j];
        int ai1[] = getPixels(image);
        if (k == 0) {
            for (int j1 = 0; j1 < j; j1++) {
                for (int l1 = 0; l1 < i; l1++) {
                    int j2 = (l1 * l) / i;
                    int k2 = (j1 * i1) / j;
                    ai[l1 + j1 * i] = ai1[j2 + k2 * l];
                }

            }

        } else {
            int k1 = (l << 13) / i;
            int i2 = (i1 << 13) / j;
            int ai2[] = new int[i * i1];
            for (int l5 = 0; l5 < i1; l5++) {
                for (int i6 = 0; i6 < i; i6++) {
                    int j5 = 0;
                    int j3 = 0;
                    int l3 = 0;
                    int l4 = 0;
                    int j4 = 0;
                    int k6 = i6 * k1 >> 13;
                    int i7 = (i6 + 1) * k1 >> 13;
                    do {
                        int l2 = ai1[k6 + l5 * l];
                        j3 += (l2 & 0xff000000) >> 24;
                        l3 += (l2 & 0xff0000) >> 16;
                        j4 += (l2 & 0xff00) >> 8;
                        l4 += l2 & 0xff;
                        j5++;
                    } while (++k6 <= i7 && k6 + l5 * l < ai1.length);
                    j3 /= j5;
                    l3 /= j5;
                    j4 /= j5;
                    l4 /= j5;
                    ai2[i6 + l5 * i] = j3 << 24 | l3 << 16 | j4 << 8 | l4;
                }

            }

            System.out.println("Vertical resampling...");
            for (int j6 = 0; j6 < i; j6++) {
                for (int l6 = 0; l6 < j; l6++) {
                    int k5 = 0;
                    int k3 = 0;
                    int i4 = 0;
                    int i5 = 0;
                    int k4 = 0;
                    int j7 = l6 * i2 >> 13;
                    int k7 = (l6 + 1) * i2 >> 13;
                    do {
                        int i3 = ai2[j6 + j7 * i];
                        k3 += (i3 & 0xff000000) >> 24;
                        i4 += (i3 & 0xff0000) >> 16;
                        k4 += (i3 & 0xff00) >> 8;
                        i5 += i3 & 0xff;
                        k5++;
                    } while (++j7 <= k7 && j6 + j7 * i < ai2.length);
                    k3 /= k5;
                    k3 = k3 <= 255 ? k3 : 255;
                    i4 /= k5;
                    i4 = i4 <= 255 ? i4 : 255;
                    k4 /= k5;
                    k4 = k4 <= 255 ? k4 : 255;
                    i5 /= k5;
                    i5 = i5 <= 255 ? i5 : 255;
                    ai[j6 + l6 * i] = k3 << 24 | i4 << 16 | k4 << 8 | i5;
                }

            }

        }
        return drawPixels(ai, i, j);
    }

}

⌨️ 快捷键说明

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