最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java小程序賽馬游戲?qū)崿F(xiàn)過程詳解

 更新時(shí)間:2020年03月11日 11:28:24   作者:spider_jx  
這篇文章主要介紹了Java小程序賽馬游戲?qū)崿F(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這是當(dāng)時(shí)做的一個(gè)小游戲,大概就是程序開始后,會(huì)進(jìn)入用戶登錄界面,用戶輸入自己的姓名和密碼后,選擇登錄會(huì)進(jìn)入到賽馬比賽的界面,這時(shí)可以看見賽馬場和馬匹的編號(hào),用戶可以選擇任何一個(gè)編號(hào)的馬進(jìn)行投注,輸入有效的投注金額(因?yàn)橄到y(tǒng)設(shè)置了初始金額,所以不得投注的超過初始金額)。投注完成后用戶可以選擇開始比賽,賽馬期間用戶不得進(jìn)行任何操作,賽馬結(jié)束后,用戶可以重新進(jìn)行新一輪的賽馬比賽,方法上同。

程序流程圖:

一、賽馬比賽模塊

其中此模塊包括對(duì)畫出馬匹和賽道部分,通過使用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);
	}
}

二、投注區(qū)模塊

a.投注馬匹模塊

主要是實(shí)現(xiàn)馬匹的選擇及投注的模擬,增加JRadioButton單選按鈕選擇馬匹。

b. 投注金額模塊

TextField來輸入投注金額,tfget接收后與總金額進(jìn)行比較。

c. 賭金變化模塊

同時(shí)變量tz控制金額改變。

代碼:

public class Run extends JFrame implements ActionListener
{
	……
	JPanel p3;
	//投注區(qū)
	JButton jb;
	//開始按鈕
	JFrame frame;
	DateUtil d1=new DateUtil();
	Boolean cotrol;
	//對(duì)投注額改變的變量
	int no;
	//名次編號(hào)
	String s;
	//投注單選事件的變量符號(hào)
	JRadioButton b1,b2,b3,b4;
	//投注的單選按鈕
	ButtonGroup bg;
	//按鈕注,使其為單選
	JTextArea ta;
	//賽馬的文字顯示
	JLabel money;
	//投注總金額標(biāo)簽
	TextField tf;
	//投注金額的輸入窗口
	int tz;
	//投注金額變化的變量
	String tfget;
	//投注總金額的中轉(zhuǎn)變量
	FlowLayout ly;
	//布局變量
}
public void actionPerformed(ActionEvent e)
{
	if(bg.getSelection()!=null)
	{
		//投注單選按鈕選擇確認(rèn)
		if(e.getActionCommand()=="開始")
		{
			tfget=tf.getText();
			try{
				if(Integer.parseint(tfget)>0&&Integer.parseint(tfget)<=tz)//string轉(zhuǎn)換成int
				{
					//投注金額確認(rèn)
					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("重新開始");//賽馬按鍵標(biāo)簽改變
b1.setEnabled(false);//賽馬開始后,禁止操作
b2.setEnabled(false);
b3.setEnabled(false);
b4.setEnabled(false);
tf.setEditable(false);
jb.setEnabled(false);
}
else
{
JOptionPane.showMessageDialog(null, "投注金額錯(cuò)誤,請(qǐng)重新投注");//信息對(duì)話框
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "投注格式錯(cuò)誤,請(qǐng)重新投注");
}
}
}
else
{
JOptionPane.showMessageDialog(null, "請(qǐng)選號(hào)確認(rèn)投注");
}

三、線程啟動(dòng)及結(jié)束模塊

a. 線程啟動(dòng)及結(jié)束部分模塊

模塊代碼:

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("重新開始");//賽馬按鍵標(biāo)簽改變
b1.setEnabled(false);//賽馬開始后,禁止操作
b2.setEnabled(false);
b3.setEnabled(false);
b4.setEnabled(false);
tf.setEditable(false);
jb.setEnabled(false);
}
……
if(e.getActionCommand()=="重新開始")
{//重新開始,相應(yīng)的控制重置
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
{//馬運(yùn)動(dòng)的線程控制
Draw a;
Run r ;
DateUtil d=new DateUtil();
racing(Draw h,Run b)
{
this.a=h;
this.r=b;
}

b. 獲取比賽初始系統(tǒng)時(shí)間模塊

線程run啟動(dòng)時(shí),通過使用Calendar類來獲取比賽開始時(shí)的系統(tǒng)時(shí)間,其中使用getNow_HMS()方法來獲取比賽的初始時(shí)間。

模塊代碼:

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. 獲取比賽結(jié)束系統(tǒng)時(shí)間模塊

當(dāng)比賽結(jié)束,線程終止時(shí),通過使用Calendar類來獲取比賽結(jié)束時(shí)的系統(tǒng)時(shí)間,其中使用getNow_HMS()方法來獲取比賽的結(jié)束時(shí)間。

模塊代碼:

public void run()
{
	int t;
	int o,y;
	o=r.Time();
	……
	y=d.getNow_HMS();
	int z=y-o;
	ta.append("用時(shí):"+z+"秒"+'n');
}

四、比賽結(jié)果顯示區(qū)模塊

在JTextArea()分布的空間內(nèi),通過方法append()顯示馬匹的名次,用時(shí)等信息。

五、賽馬游戲運(yùn)行結(jié)果

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java Calendar日歷與Date日期的相互轉(zhuǎn)換詳解

    Java Calendar日歷與Date日期的相互轉(zhuǎn)換詳解

    這篇文章主要介紹了Java Calendar日歷與Date日期的相互轉(zhuǎn)換詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • spring的IoC和DI詳解

    spring的IoC和DI詳解

    這篇文章主要介紹了spring的IoC和DI詳解,還是挺不錯(cuò)的,這里分享給加,需要的朋友可以參考下。
    2017-11-11
  • JAVA獲取Image的三種方式

    JAVA獲取Image的三種方式

    這篇文章主要介紹了JAVA獲取Image的三種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring Boot異步輸出Logback日志方法詳解

    Spring Boot異步輸出Logback日志方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot異步輸出Logback日志的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能

    微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能

    這篇文章主要介紹了微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能,文章簡單介紹了Redis BitMap 基本用法結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • springboot熱部署class XX cannot be cast to class XX解決方案

    springboot熱部署class XX cannot be cast&nbs

    在使用DevTools進(jìn)行熱加載時(shí)遇到的`classXXcannotbecasttoclassXX`錯(cuò)誤,以及解決該問題的方法,通過在`resources`目錄下創(chuàng)建`META-INF/spring-devtools.properties`文件,并添加相應(yīng)的配置,可以有效解決此問題,使DevTools熱加載功能得以正常工作
    2025-02-02
  • SpringBoot?@Value與@ConfigurationProperties二者有哪些區(qū)別

    SpringBoot?@Value與@ConfigurationProperties二者有哪些區(qū)別

    這篇文章主要介紹了SpringBoot?@Value與@ConfigurationProperties二者的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • 淺談一下SpringBoot中的異步任務(wù)

    淺談一下SpringBoot中的異步任務(wù)

    這篇文章主要介紹了淺談一下SpringBoot中的異步任務(wù),SpringBoot 中的異步任務(wù)主要是指在 SpringBoot 中使用異步線程完成處理任務(wù),在 SpringBoot 中使用異步線程非常簡單,只需要兩個(gè)注解就可以搞定,需要的朋友可以參考下
    2023-10-10
  • Java調(diào)用WebService接口的方法

    Java調(diào)用WebService接口的方法

    這篇文章主要介紹了Java調(diào)用WebService接口的方法,實(shí)例分析了有參方法Add的使用技巧,需要的朋友可以參考下
    2015-01-01
  • Java實(shí)現(xiàn)字符編碼轉(zhuǎn)換(utf-8/gbk)

    Java實(shí)現(xiàn)字符編碼轉(zhuǎn)換(utf-8/gbk)

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)字符編碼轉(zhuǎn)換工具,主要針對(duì)UTF-8和GBK兩種編碼格式,文中的示例代碼講解詳,需要的可以了解下
    2025-03-03

最新評(píng)論

瓦房店市| 始兴县| 新晃| 阜康市| 弥渡县| 淮阳县| 惠东县| 盐城市| 五华县| 茶陵县| 寻甸| 临海市| 尉氏县| 新营市| 柳江县| 信阳市| 乌鲁木齐市| 兴义市| 太仆寺旗| 吴川市| 莫力| 尤溪县| 仁怀市| 北流市| 郓城县| 池州市| 衡山县| 宣威市| 司法| 新泰市| 上犹县| 定州市| 贵定县| 太和县| 正镶白旗| 沂源县| 林州市| 舞阳县| 三都| 万载县| 逊克县|