电话
400 9058 355
这是当时做的一个小游戏,大概就是程序开始后,会进入用户登录界面,用户输入自己的姓名和密码后,选择登录会进入到*比赛的界面,这时可以看见*场和马匹的编号,用户可以选择任何一个编号的马进行*,输入有效的*金额(因为系统设置了初始金额,所以不得*的超过初始金额)。*完成后用户可以选择开始比赛,*期间用户不得进行任何操作,*结束后,用户可以重新进行新一轮的*比赛,方法上同。

程序流程图:
一、*比赛模块
其中此模块包括对画出马匹和赛道部分,通过使用Draw类来向Jpanel面板中添加马和赛道。
部分代码:
class Draw extends JPanel
{
int x=0;
String s;
int w,h;
public void paint(Graphics g)
{
super.paint(g);
this.setBackground(Color.WHITE);
w=this.getWidth();
h=this.getHeight();
g.setColor(Color.BLACK);
g.drawLine(66,h/2-44,666,h/2-44);
g.drawLine(66,h/2+40,666,h/2+40);
g.setColor(Color.BLACK);
g.drawLine(66,0,66,h);
g.setColor(Color.red);
g.drawLine(666,0,666,h);
g.drawRect(36+x,h/2-10,30,20);
//马的显示
g.setColor(Color.BLACK);
//文字显示
g.drawString(s,26,h/2-12);
}
}
二、*区模块
a.*马匹模块
主要是实现马匹的选择及*的模拟,增加JRadioButton单选按钮选择马匹。
b. *金额模块
TextField来输入*金额,tfget接收后与总金额进行比较。
c. 赌金变化模块
同时变量tz控制金额改变。
代码:
public class Run extends JFrame implements ActionListener
{
……
JPanel p3;
//*区
JButton jb;
//开始按钮
JFrame frame;
DateUtil d1=new DateUtil();
Boolean cotrol;
//对*额改变的变量
int no;
//名次编号
String s;
//*单选事件的变量符号
JRadioButton b1,b2,b3,b4;
//*的单选按钮
ButtonGroup bg;
//按钮注,使其为单选
JTextArea ta;
//*的文字显示
JLabel money;
//*总金额标签
TextField tf;
//*金额的输入窗口
int tz;
//*金额变化的变量
String tfget;
//*总金额的中转变量
FlowLayout ly;
//布局变量
}
public void actionPerformed(ActionEvent e)
{
if(bg.getSelection()!=null)
{
//*单选按钮选择确认
if(e.getActionCommand()=="开始")
{
tfget=tf.getText();
try{
if(Integer.parseint(tfget)>0&&Integer.parseint(tfget)<=tz)//string转换成int
{
//*金额确认
ta.setText("比赛开始了"+'n');
new racing(h1,this).start();
new racing(h2,this).start();
new racing(h3,this).start();
new racing(h4,this).start();
jb.setText("重新开始");//*按键标签改变
b1.setEnabled(false);//*开始后,禁止操作
b2.setEnabled(false);
b3.setEnabled(false);
b4.setEnabled(false);
tf.setEditable(false);
jb.setEnabled(false);
}
else
{
JOptionPane.showMessageDialog(null, "*金额错误,请重新*");//信息对话框
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "*格式错误,请重新*");
}
}
}
else
{
JOptionPane.showMessageDialog(null, "请选号确认*");
}
三、线程启动及结束模块
a. 线程启动及结束部分模块
模块代码:
public void actionPerformed(ActionEvent e)
{
……
ta.setText("比赛开始了"+'n');
new racing(h1,this).start();
new racing(h2,this).start();
new racing(h3,this).start();
new racing(h4,this).start();
jb.setText("重新开始");//*按键标签改变
b1.setEnabled(false);//*开始后,禁止操作
b2.setEnabled(false);
b3.setEnabled(false);
b4.setEnabled(false);
tf.setEditable(false);
jb.setEnabled(false);
}
……
if(e.getActionCommand()=="重新开始")
{//重新开始,相应的控制重置
restar(h1,this);
restar(h2,this);
restar(h3,this);
restar(h4,this);
cotrol=true;
no=0;
ta.setText("");
tf.setEditable(true);
b1.setEnabled(true);
b2.setEnabled(true);
b3.setEnabled(true);
b4.setEnabled(true);
jb.setText("开始");
}
}
class racing extends Thread
{//马运动的线程控制
Draw a;
Run r ;
DateUtil d=new DateUtil();
racing(Draw h,Run b)
{
this.a=h;
this.r=b;
}
b. 获取比赛初始系统时间模块
线程run启动时,通过使用Calendar类来获取比赛开始时的系统时间,其中使用getNow_HMS()方法来获取比赛的初始时间。
模块代码:
import java.util.;
public class DateUtil{
public static String getNow_M(){
Calendar c=Calendar.getInstance();
String minute=String.valueOf(c.get(Calendar.MINUTE));
if(minute.length()==1){
minute="0"+minute;
}
String ms1=minute;
return ms1;
}
public static String getNow_S(){
Calendar c=Calendar.getInstance();
String second=String.valueOf(c.get(Calendar.SECOND));
if(second.length()==1){
second="0"+second;
}
String ms2=second;
return ms2;
}
public int getNow_HMS(){
String s1,s2;
s1=getNow_M();
s2=getNow_S();
int a=Integer.parseint(s1)60+Integer.parseint(s2);
return a;
}
public static void main(String[] args) {
DateUtil d;
d=new DateUtil();
d.getNow_HMS();
}
}
public int Time(){
int oo=d1.getNow_HMS();
return oo;
}
c. 获取比赛结束系统时间模块
当比赛结束,线程终止时,通过使用Calendar类来获取比赛结束时的系统时间,其中使用getNow_HMS()方法来获取比赛的结束时间。
模块代码:
public void run()
{
int t;
int o,y;
o=r.Time();
……
y=d.getNow_HMS();
int z=y-o;
ta.append("用时:"+z+"秒"+'n');
}
四、比赛结果显示区模块
在JTextArea()分布的空间内,通过方法append()显示马匹的名次,用时等信息。
五、*游戏运行结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
邮箱:8955556@qq.com
Q Q:8955556
这篇文章主要为大家详细介绍了Android自定义控件实现底部...
这篇文章主要介绍了Android中Toolbar随着Scro...
本文主要介绍了Java图表类库的相关知识。具有很好的参考价值...
本文主要介绍了GIt的基本操作。具有很好的参考价值,下面跟着...
共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有...
这篇文章主要为大家详细介绍了Android自定义相机实现定时...
这篇文章主要介绍了CentOS6.5 上部署 MySQL5....
这篇文章主要介绍了Vue结合原生js实现自定义组件自动生成示...
最近在学习python网络编程这一块,在写简单的socket...
这篇文章主要介绍了微信小程序 数据交互与渲染实例详解的相关资...