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

📄 mainframe.java

📁 windows的经典游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class MainFrame extends JFrame
{
    MainPanel mainPanel;
    Thread t=new Thread(){
        public void run()
        {
            try
            {
                while(true)
                {
                    String title=MainFrame.this.getTitle();
                    if(title.charAt(title.length()-1)==' ')
                        MainFrame.this.setTitle(title.substring(title.length()-2,title.length())+title.substring(0,title.length()-2));
                    else
                        MainFrame.this.setTitle(title.charAt(title.length()-1)+title.substring(0,title.length()-1));
                    this.sleep(100);
                }
            }
            catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
    };
    public MainFrame(int number)
    {
        mainPanel=new MainPanel(number);
        StringBuffer title=new StringBuffer("我的游戏空间");
        for(int i=0;i<150;i++)
            title.append(" ");
        this.setTitle(title.toString());
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.getContentPane().add(mainPanel);
        this.setResizable(false);
        this.t.start();
    }
    public static void main(String[] args)
    {
        int number;
        do
        {
            String a=JOptionPane.showInputDialog(null, new String("请输入雷数(1~479)"),new String("难度选择"),JOptionPane.QUESTION_MESSAGE);
            if(a==null)
                return;
            try
            {
                number=Integer.parseInt(a);
            }
            catch(Exception e)
            {
                number=0;
            }
        }while(number<1||number>479);
        JFrame.setDefaultLookAndFeelDecorated(true);
        MainFrame mainFrame=new MainFrame(number);
        mainFrame.setSize(610,355);
        mainFrame.setVisible(true);
    }
}
class MainPanel extends JPanel
{
    boolean is_Win;
    boolean last;
    boolean win;
    boolean game_over;
    Random rand=new Random();
    int[] bomb;
    int [] sign=new int[480];
    int [] label=new int[480];
    boolean [] isClicked=new boolean[480];
    boolean [] isBomb=new boolean[480];
    Image button_up;
    Image button_down;
    Image bomb_black;
    Image bomb_dead;
    Image flag;
    Image wrong_flag;
    Image [] number_pic=new Image[9];
    int x;
    int y;
    boolean isLeftDown=false;
    boolean isRightDown=false;
    boolean isMiddleDown=false;
    private void init()
    {
        int bomb_number=0;
        do
        {
            String a=JOptionPane.showInputDialog(null, new String("请输入雷数(1~479)"),new String("难度选择"),JOptionPane.QUESTION_MESSAGE);
            if(a==null)
                return;
            try
            {
                bomb_number=Integer.parseInt(a);
            }
            catch(Exception e)
            {
                bomb_number=0;
            }
        }while(bomb_number<1||bomb_number>479);
        last=false;
        win=false;
        game_over=false;
        is_Win=false;
        bomb=new int[bomb_number];
        for(int i=0;i<sign.length;i++)
            sign[i]=-1;
        for(int i=0;i<isClicked.length;i++)
            isClicked[i]=true;
        for(int i=0;i<isBomb.length;i++)
            isBomb[i]=false;
        for(int i=0;i<bomb.length;i++)
        {
            bomb[i]=rand.nextInt(480);
            for(int j=0;j<i;j++)
            {
                if(bomb[j]==bomb[i])
                {
                    i--;
                    break;
                }
            }
        }
        for(int i=0;i<bomb.length;i++)
            isBomb[bomb[i]]=true;
        for(int i=0;i<label.length;i++)
        {
            int count=0;
            int [] number=initArray(i);
            for(int in=0;in<number.length;in++)
            {
                int j=0;
                for(;j<bomb.length&&bomb[j]!=number[in];j++);
                if(j!=bomb.length)
                    count++;
            }
            label[i]=count;
        }
    }
    private int[] initArray(int index)
    {
        int [] number;
        if(index==0)
            number=new int[]{1,30,31};
        else if(index==29)
            number=new int[]{28,59,58};
        else if(index==450)
            number=new int[]{420,421,451};
        else if(index==479)
            number=new int[]{478,448,449};
        else if(index>0&&index<29)
            number=new int[]{index-1,index+1,index+30,index+31,index+29};
        else if(index>450&&index<479)
            number=new int[]{index-1,index+1,index-30,index-31,index-29};
        else if(index==30||index==60||index==90||index==120||index==150||index==180||index==210||index==240||index==270||index==300||index==330||index==360||index==390||index==420)
            number=new int[]{index-30,index-29,index+1,index+30,index+31};
        else if(index==59||index==89||index==119||index==149||index==179||index==209||index==239||index==269||index==299||index==329||index==359||index==389||index==419||index==449)
            number=new int[]{index-30,index-31,index-1,index+29,index+30};
        else
            number=new int[]{index-31,index-30,index-29,index-1,index+1,index+29,index+30,index+31};
        return number;
    }
    private boolean isWin()
    {
        for(int i=0;i<sign.length;i++)
            if(sign[i]!=0&&!isBomb[i])
                return false;
        return true;
    }
    private boolean isGameover(int index)
    {
        int i=0;
        for(;i<bomb.length&&index!=bomb[i];i++);
        if(i!=bomb.length)
            return true;
        return false;
    }
    private void setMousePoint(MouseEvent e)
    {
        x=e.getX();
        y=e.getY();
    }
    private void disposeMiddleButtonReleased(int index)
    {
        int [] number=initArray(index);
        int count=0;
        for(int i=0;i<number.length;i++)
            if(sign[number[i]]==-5)
                count++;
        if(label[index]==count)
        {
            for(int i=0;i<number.length;i++)
                if(sign[number[i]]==-2)
                    disposeLeftButtonClick(number[i]);
        }
        else
        {
            for(int i=0;i<number.length;i++)
                if(sign[number[i]]==-2)
                    sign[number[i]]=-1;
        }
    }
    private void disposeMiddleButtonPressed(int index)
    {
        int [] number=initArray(index);
        for(int i=0;i<number.length;i++)
            if(sign[number[i]]==-1)
                sign[number[i]]=-2;
    }
    private void disposeMiddleButtonDragged(int index)
    {
        int [] number=initArray(index);
        for(int i=0;i<number.length;i++)
            if(sign[number[i]]==-2)
                sign[number[i]]=-1;
    }
    private void disposeLeftButtonClick(int index)
    {
        int i=0;
        for(;i<bomb.length&&bomb[i]!=index;i++);
        if(i!=bomb.length)
        {
            sign[index]=-4;
            for(i=0;i<bomb.length;i++)
                if(sign[bomb[i]]==-1)
                    sign[bomb[i]]=-3;
            for(i=0;i<sign.length;i++)
                if(sign[i]==-5&&!isBomb[i])
                    sign[i]=-6;
            game_over=isGameover(index);
        }
        else
        {
            sign[index]=0;

⌨️ 快捷键说明

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