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> 规则:游戏共五关,通关有惊喜。<br>    每关需在1~200中选择符合题意的数字输入。<br>    输入数字的正误将会显示,每关正确数达到3个时过关。<br>    数字错误一次将损失一点生命值,生命值为0时游戏失败。<br> 提示:游戏中单击可获得提示。<br> 获得提示次数:单击后输入兑换码可获得提示次数。<br> ");
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
2068

被折叠的 条评论
为什么被折叠?



