91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java小程序賽馬游戲實現過程詳解

發布時間:2020-09-10 15:09:03 來源:腳本之家 閱讀:351 作者:spider_jx 欄目:編程語言

這是當時做的一個小游戲,大概就是程序開始后,會進入用戶登錄界面,用戶輸入自己的姓名和密碼后,選擇登錄會進入到賽馬比賽的界面,這時可以看見賽馬場和馬匹的編號,用戶可以選擇任何一個編號的馬進行投注,輸入有效的投注金額(因為系統設置了初始金額,所以不得投注的超過初始金額)。投注完成后用戶可以選擇開始比賽,賽馬期間用戶不得進行任何操作,賽馬結束后,用戶可以重新進行新一輪的賽馬比賽,方法上同。

程序流程圖:

Java小程序賽馬游戲實現過程詳解

一、賽馬比賽模塊

其中此模塊包括對畫出馬匹和賽道部分,通過使用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(h2,this).start();
new racing(h3,this).start();
new racing(h4,this).start();
new racing(h5,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(h2,this).start();
new racing(h3,this).start();
new racing(h4,this).start();
new racing(h5,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(h2,this);
restar(h3,this);
restar(h4,this);
restar(h5,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()顯示馬匹的名次,用時等信息。

五、賽馬游戲運行結果

Java小程序賽馬游戲實現過程詳解

Java小程序賽馬游戲實現過程詳解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城固县| 雅江县| 四川省| 德庆县| 平定县| 道真| 华亭县| 民丰县| 嘉黎县| 广饶县| 张家口市| 泾源县| 岳阳县| 平山县| 黄冈市| 伊宁县| 武清区| 巴南区| 大姚县| 焉耆| 呼玛县| 荥阳市| 长寿区| 曲麻莱县| 图们市| 都匀市| 通江县| 喜德县| 望城县| 武冈市| 凤台县| 东辽县| 双辽市| 嵩明县| 沅江市| 巴林左旗| 安义县| 都昌县| 南涧| 田东县| 保德县|