자바 애플 릿 경마 게임 실현 과정 상세 설명

이것 은 그 당시 에 만 든 작은 게임 입 니 다.아마도 프로그램 이 시 작 된 후에 사용자 로그 인 인터페이스 에 들 어 갈 것 입 니 다.사용 자 는 자신의 이름과 비밀 번 호 를 입력 한 후에 로그 인 을 선택 하면 경마 경기 의 인터페이스 에 들 어 갈 것 입 니 다.이때 경마장 과 말의 번 호 를 볼 수 있 습 니 다.사용 자 는 어떤 번호 의 말 을 선택 하여 베 팅 할 수 있 습 니까?유효한 베 팅 금액 을 입력 하 십시오.베 팅 이 끝 난 후에 사용 자 는 경 기 를 시작 할 수 있 습 니 다.경마 기간 에 사용 자 는 어떠한 조작 도 할 수 없습니다.경마 가 끝 난 후에 사용 자 는 새로운 경마 경 기 를 다시 진행 할 수 있 습 니 다.방법 은 똑 같 습 니 다.
프로그램 흐름 도:

1.경마 경기 모듈
이 모듈 은 말 과 코스 를 그 리 는 부분 을 포함 하고 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);
	}
}
2.투자 구역 모듈
a.말 베 팅 모듈
주로 말의 선택 및 베 팅 시 뮬 레이 션 을 실현 하고 Jradio Button 단일 선택 단 추 를 추가 하여 말 을 선택 합 니 다.
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, "       ");
}
3.스 레 드 시작 및 종료 모듈
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');
}
4.경기 결과 표시 구역 모듈
JTextArea()에 분 포 된 공간 에서 방법 append()를 통 해 말의 순위,사용 시간 등 정 보 를 표시 합 니 다.
5.경마 게임 운행 결과


이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기