Number Kingdom 【源代码和exe文件】

Number Kingdom 【源代码和exe文件】

import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
class Set
{
    int helper=0;
    int life=3;
    int num_sum=0;
    int if_win=0;
    int head=1;
    int stop=0;
    String ans=new String(" ");
    int res=3;
    int loc1=1;
    int loc2=1;
    int pass_number=1;
    int line[]=new int[205];
    int bot[]=new int[205]; 
    int cons[]=new int[8];
    int sec=180;
    String s1=new String(" ");
    String s2=new String(" ");
    String s3=new String(" ");
    String s4=new String(" ");
    String s5=new String(" ");
    String s6=new String(" ");
    JLabel q1=new JLabel();
    JLabel q2=new JLabel();
    JLabel q3=new JLabel();
    JLabel q4=new JLabel();
    JLabel respond=new JLabel();
    java.util.Timer timer=new java.util.Timer();
    MyTime timetask=new MyTime();
    public class MyTime extends TimerTask
    {
        public void run()
        {
            if(stop==0)sec--;
            say16.setText(sec+" s");
            if(sec<=2)Game_Over_Time();
        }
    }
    int snum[]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199};
    String ques1="·数字是一个素数";
    String ques2="·数字是一个奇数";
    String ques3="·数字除以3余1";
    String ques4="·数字除以5余3或4";
    String ques5="·数字除以7余2或5";
    String ques6="·数字除以9余4或7";
    String ques7="·数字除以6余2或4";
    String ques8="·数字除以8余4或1";
    void Ques1()
    {
        for(int i=1;i<=25;i++)
          bot[snum[i]]++;
    }
    void Ques2()
    {
        for(int i=1;i<=200;i++)
          if(i%2==1)bot[i]++;
    }
    void Ques3()
    {
        for(int i=1;i<=200;i++)
          if(i%3==1)bot[i]++;
    }
    void Ques4()
    {
        for(int i=1;i<=200;i++)
          if(i%5==3||i%5==4)bot[i]++;
    }
    void Ques5()
    {
        for(int i=1;i<=200;i++)
          if(i%7==2||i%7==5)bot[i]++;
    }
    void Ques6()
    {
        for(int i=1;i<=200;i++)
          if(i%9==4||i%9==7)bot[i]++;
    }
    void Ques7()
    {
        for(int i=1;i<=200;i++)
          if(i%6==2||i%6==4)bot[i]++;
    }
    void Ques8()
    {
        for(int i=1;i<=200;i++)
          if(i%8==4||i%8==1)bot[i]++;
    }
    void Get_Ques()
    {
        cons[1]=(int)(Math.random()*100)%8+1;
        cons[2]=(int)(Math.random()*100)%8+1;
        while(cons[1]==cons[2])cons[2]=(int)(Math.random()*100)%8+1;
        cons[3]=(int)(Math.random()*100)%8+1;
        while(cons[3]==cons[2]||cons[3]==cons[1])cons[3]=(int)(Math.random()*100)%8+1;
    }
    void Game()
    {
        for(int i=1;i<=200;i++)
        {
            bot[i]=0;line[i]=0;
        }
        num_sum=0;head=1;ans=" ";res=3;loc1=1;loc2=1;sec=180;stop=0;
        s1=" ";s2=" ";s3=" ";s4=" ";s5=" ";s6=" ";
        say6.setText("正确:"+s1+s2+s3);
        say7.setText("错误:"+s4+s5+s6);
        q1.setBounds(120,150,200,40);
        q2.setBounds(120,190,200,40);
        q3.setBounds(120,230,200,40);
        q4.setBounds(120,270,200,40);
        table.add(q1);
        table.add(q2);
        table.add(q3);
        table.add(q4);
        table.setVisible(true);
        Get_Ques();
        switch(cons[1])
        {
            case 1:{q1.setText(ques1);Ques1();break;}
            case 2:{q1.setText(ques2);Ques2();break;}
            case 3:{q1.setText(ques3);Ques3();break;}
            case 4:{q1.setText(ques4);Ques4();break;}
            case 5:{q1.setText(ques5);Ques5();break;}
            case 6:{q1.setText(ques6);Ques6();break;}
            case 7:{q1.setText(ques7);Ques7();break;}
            case 8:{q1.setText(ques8);Ques8();break;}
        }
        switch(cons[2])
        {
            case 1:{q2.setText(ques1);Ques1();break;}
            case 2:{q2.setText(ques2);Ques2();break;}
            case 3:{q2.setText(ques3);Ques3();break;}
            case 4:{q2.setText(ques4);Ques4();break;}
            case 5:{q2.setText(ques5);Ques5();break;}
            case 6:{q2.setText(ques6);Ques6();break;}
            case 7:{q2.setText(ques7);Ques7();break;}
            case 8:{q2.setText(ques8);Ques8();break;}
        }
        switch(cons[3])
        {
            case 1:{q3.setText(ques1);Ques1();break;}
            case 2:{q3.setText(ques2);Ques2();break;}
            case 3:{q3.setText(ques3);Ques3();break;}
            case 4:{q3.setText(ques4);Ques4();break;}
            case 5:{q3.setText(ques5);Ques5();break;}
            case 6:{q3.setText(ques6);Ques6();break;}
            case 7:{q3.setText(ques7);Ques7();break;}
            case 8:{q3.setText(ques8);Ques8();break;}
        }
        for(int i=1;i<=200;i++)
          if(bot[i]==3)
          {
            line[head++]=i;
            num_sum++;
          }
        q4.setText("共有 "+num_sum+" 个数字符合条件");
        say16.setText(sec+" s");
        timer.schedule(timetask,1000,1000);
    }
    void Game_Over_Life()
    {
        JFrame table6=new JFrame("失败");
        JLabel say12=new JLabel("生命值为0!游戏失败!单击“开始”重新游戏!"); 
        table6.setSize(300,80);
        table6.setVisible(true);
        table6.setLayout(new FlowLayout());
        table6.add(say12);
        clear();
        life=3;
        sec=180;
        stop=1;
        say4.setText("生命值:"+life);
        say16.setText(sec+" s");
    }
    void Game_Over_Time()
    {
        JFrame table11=new JFrame("失败");
        JLabel say17=new JLabel("倒计时结束!游戏失败!单击“开始”重新游戏!"); 
        table11.setSize(300,80);
        table11.setVisible(true);
        table11.setLayout(new FlowLayout());
        table11.add(say17);
        clear();
        life=3;
        sec=180;
        stop=1;
        say4.setText("生命值:"+life);
        say16.setText(sec+" s");
    }
    void Game_Win()
    {
        JFrame table7=new JFrame("成功!");
        JLabel say13=new JLabel("恭喜过关!请单击“下一关”继续!"); 
        table7.setSize(300,80);
        table7.setVisible(true);
        table7.setLayout(new FlowLayout());
        table7.add(say13);
        if_win=1;
        clear();
        sec=180;
        stop=1;
        if(pass_number==5)
          Game_Passall();
        say16.setText(sec+" s");
    }
    void Game_Passall()
    {
        JFrame table9=new JFrame("通关");
        JLabel say16=new JLabel("恭喜通关!请领取惊喜!");
        JButton button_surprise=new JButton("领取惊喜");
        table9.setSize(300,80);
        table9.setLayout(new FlowLayout());
        table9.setVisible(true);
        table9.add(say16);
        table9.add(button_surprise);
        button_surprise.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                JFrame table10=new JFrame("惊喜");
                JLabel say18=new JLabel();
                table10.setSize(500,80);
                table10.setVisible(true);
                table10.setLayout(new FlowLayout());
                table10.add(say18);
                say18.setText("为天地立心,为生民立命,为往圣继绝学,为万世开太平。      ——张载");
            }
        });
    }
    void Pending()
    {
        int ord=0;
        ans=ans+"   ";
        for(int i=1;i<=head;i++)
        {
            if(ans.equals(line[i]+"   "))
            {
                ord=1;line[i]=0;res--;break;
            }
        }
        if(ord==1)
        {
            switch(loc1)
            {
                case 1:{s1=ans;loc1++;break;}
                case 2:{s2=ans;loc1++;break;}
                case 3:{s3=ans;loc1++;break;}
            }
            say6.setText("正确:"+s1+s2+s3);
            say13.setText("正确!");
            say13.setForeground(Color.green);
            if(res==0)
            {
                Game_Win();
            }
        }
        if(ord==0)
        {
            switch(loc2)
            {
                case 1:{s4=ans;loc2++;break;}
                case 2:{s5=ans;loc2++;break;}
                case 3:{s6=ans;loc2++;break;}
            }
            say7.setText("错误:"+s4+s5+s6);
            say13.setText("错误!");
            say13.setForeground(Color.red);
            life--;
            say4.setText("生命值:"+life);
            if(life==0)
            {
                Game_Over_Life();
                pass_number=1;
                life=3;
            }
        }
    }
    void clear()
    {
        say6.setText("正确:");
        say7.setText("错误:");
        q1.setText(" ");
        q2.setText(" ");
        q3.setText(" ");
        q4.setText(" ");
        answer.setText("");
        say13.setText(" ");
    } 
    void Hint()
    {
        if(helper==0)
        {
            JFrame table5=new JFrame("提示次数不足!");
            JLabel say11=new JLabel("提示次数不足!请先兑换并刷新提示次数!");
            table5.setSize(300,80);
            table5.setLayout(null);
            table5.setVisible(true);
            say11.setBounds(25,7,280,30);
            table5.add(say11);
            return ;
        }
        helper--;
        say2.setText("当前提示机会:"+helper+"次");
        int hint=0;
        for(int i=head;i>=1;i--)
        {
            if(line[i]!=0)hint=line[i];
        }
        JFrame table4=new JFrame("提示");
        JLabel say10=new JLabel("有一个数字是:"+hint);
        table4.setSize(300,80);
        table4.setLayout(null);
        table4.setVisible(true);
        say10.setBounds(80,7,240,30);
        table4.add(say10);
    }
    void About()
    {
        JFrame table14=new JFrame("关于作者");
        JLabel say19=new JLabel("联系作者:");
        JLabel say18=new JLabel("<html>QQ:997577114<br>E-mail:wfzhangzeyu@163.com");
        JLabel say20=new JLabel("All Rights Reserved By MC");
        table14.setSize(400,200);
        table14.setVisible(true);
        table14.setLayout(null);
        say19.setFont(new Font(null,1,12));
        say19.setBounds(70,15,100,40);
        say18.setFont(new Font(null,0,12)); 
        say18.setBounds(155,20,200,40);
        say20.setBounds(100,70,200,40);
        say20.setFont(new Font(null,1,14));
        table14.add(say18);
        table14.add(say19);
        table14.add(say20);
    }
    void Attention()
    {
        JFrame table19=new JFrame("规则帮助");
        JLabel say21=new JLabel("<html>&emsp;规则:游戏共五关,通关有惊喜。<br>&emsp;&emsp;&emsp;&emsp;每关需在1~200中选择符合题意的数字输入。<br>&emsp;&emsp;&emsp;&emsp;输入数字的正误将会显示,每关正确数达到3个时过关。<br>&emsp;&emsp;&emsp;&emsp;数字错误一次将损失一点生命值,生命值为0时游戏失败。<br>&emsp;提示:游戏中单击可获得提示。<br>&emsp;获得提示次数:单击后输入兑换码可获得提示次数。<br>&emsp;");
        table19.setSize(400,180);
        table19.setVisible(true);
        table19.add(say21);
    }
    JFrame table=new JFrame("Number_Kingdom          All Rights Reserved By MC");
    JTextArea answer=new JTextArea(1,20);
    JButton button_begin=new JButton("开始");
    JButton button_help=new JButton("提示");
    JButton button_update=new JButton("刷新");
    JButton button_next=new JButton("下一关");
    JLabel say2=new JLabel("当前提示机会:"+helper+"次");
    JLabel say3=new JLabel("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
    JLabel say4=new JLabel("生命值:"+life);
    JLabel say5=new JLabel("请输入一个答案");
    JLabel say6=new JLabel("正确:");
    JLabel say7=new JLabel("错误:");
    JLabel say13=new JLabel();
    JLabel say14=new JLabel("第 "+pass_number+" 关");
    JButton button_get_help=new JButton("获取提示次数");
    JButton enter3=new JButton("确定");
    JButton button_about=new JButton("关于作者");
    JButton button_attention=new JButton("规则帮助");
    JLabel say8=new JLabel("本轮数字要求:");
    JLabel say9=new JLabel("剩余时间");
    JLabel say16=new JLabel(sec+" s");
    void Set_Work()
    {
        Set_Table();
        Set_Control();  
    }
    void Set_Table()
    {
        table.setSize(1000,618);
        table.setVisible(true);
        table.setLayout(null);
        table.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
    }
    void Set_Control()
    {
        say4.setBounds(710,45,100,20);
        say3.setBounds(10,30,980,5);
        say2.setBounds(300,10,200,20);
        button_get_help.setBounds(430,10,150,20);
        button_update.setBounds(580,10,60,20);
        button_begin.setBounds(400,40,100,30);
        button_help.setBounds(500,40,100,30);
        button_next.setBounds(210,45,80,20);
        enter3.setBounds(700,180,80,30);
        answer.setBounds(640,140,200,20);
        say5.setBounds(695,118,100,20);
        say6.setBounds(550,260,200,20);
        say7.setBounds(550,280,200,20);
        say8.setBounds(120,100,200,40);
        say9.setBounds(700,350,100,20);
        say13.setBounds(845,140,40,20);
        say14.setBounds(150,45,100,20);
        say16.setBounds(700,400,100,20);
        button_about.setBounds(380,450,120,25);
        button_attention.setBounds(500,450,120,25);
        say6.setForeground(Color.green);
        say7.setForeground(Color.red);
        say6.setFont(new Font(null,1,15));
        say7.setFont(new Font(null,1,15));
        say8.setFont(new Font(null,1,15));
        say9.setFont(new Font(null,1,15));
        say14.setFont(new Font(null,1,15));
        say16.setFont(new Font(null,1,25));
        table.add(button_begin);
        table.add(button_help);
        table.add(say2);
        table.add(button_get_help); 
        table.add(button_update);
        table.add(say4);
        table.add(say3);
        table.add(enter3);
        table.add(answer);
        table.add(say5);
        table.add(say6);
        table.add(say7);
        table.add(say8);
        table.add(say9);
        table.add(say13);
        table.add(say14);
        table.add(say16);
        table.add(button_next);
        table.add(button_about);
        table.add(button_attention);
//      table.setVisible(true);
        button_get_help.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                Get_Helper();
            }
        });
        button_update.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                say2.setText("当前提示机会:"+helper+"次");
            }
        });
        button_begin.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                Game();
            }
        });
        enter3.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                ans=answer.getText();
                Pending();
            }
        });
        button_help.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                Hint();
            }
        });
        button_next.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                if(if_win==0)
                {
                    JFrame table8=new JFrame("无法进入下一关");
                    JLabel say15=new JLabel("本关尚未通过!无法进入下一关!");
                    table8.setSize(300,70);
                    table8.setVisible(true);
                    table8.setLayout(new FlowLayout());
                    table8.add(say15);
                }
                if(if_win==1)
                {
                    pass_number++;
                    say14.setText("第 "+pass_number+" 关");
                    if_win=0;
                    clear();
                }

            }
        });
        button_about.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                About();
            }
        });
        button_attention.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                Attention();
            }
        });
    }
    void Get_Helper()
    {
        JFrame table2=new JFrame("兑换提示次数");
        JLabel say1=new JLabel("请输入兑换码");
        JTextField txt_get_helper=new JTextField(25);
        JButton enter1=new JButton("确定");
        table2.setSize(500,80);
        table2.setVisible(true);
        table2.setLayout(new FlowLayout());
        table2.add(say1);
        table2.add(txt_get_helper); 
        table2.add(enter1);
        enter1.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                String s1=txt_get_helper.getText();
                txt_get_helper.setText("");
                if(s1.equals("MC2018"))
            {
                JFrame table3=new JFrame("兑换成功!");
                table3.setSize(400,80);
                table3.setVisible(true);
                table3.setLayout(new FlowLayout());
                JLabel say2=new JLabel("兑换成功!获得一次提示机会!请单击“刷新”获取!");
                table3.add(say2);
                table3.setLayout(new FlowLayout());
                helper++;
            }
            else
            {
                JFrame table3=new JFrame("兑换失败!");
                table3.setSize(400,80);
                table3.setVisible(true);
                table3.setLayout(new FlowLayout());
                JLabel say2=new JLabel("兑换失败!兑换码错误!");
                table3.add(say2);
            }
            }
        });
    }

}
public class N
{

    public static void main(String[] args)
    {
        Set sets=new Set();
        sets.Set_Work();
    }

}

exe文件下载

PC端,内含JRE,解压后双击exe文件即可运行
链接:https://pan.baidu.com/s/1jFjZPNv1v3EXiTqarIQk6Q
密码:iloa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值