亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chess.java

?? 這是一款中國(guó)象棋
?? JAVA
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/*
 *中國(guó)象棋Java版V3.0
 *作者
 *源文件:Chess.java
 *最后修改時(shí)間:2005-8-20
 *添加功能:實(shí)現(xiàn)了當(dāng)前棋局的保存
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;

//主類
public class Chess
{
	public static void main(String args[])
	{
		new ChessMainFrame("中國(guó)象棋Java版");
	}
}

//主框架類
class ChessMainFrame extends JFrame implements ActionListener,MouseListener,Runnable
{
	//玩家
	JLabel play[] = new JLabel[32];
	
	//棋盤
	JLabel image;	
	
	//窗格
	Container con;
	
	//工具欄
	JToolBar jmain;	
	//重新開始
	JButton anew;
	//悔棋
	JButton repent;
	//打開
	JButton showOpen;
	//保存
	JButton showSave;
	//退出
	JButton exit;
	
	//當(dāng)前信息
	JLabel text;
	
	//保存當(dāng)前操作
	Vector FileVar;
	Vector Var;
	
	//規(guī)則類對(duì)象(使于調(diào)用方法)
	ChessRule rule;
	
	/*單擊棋子**********************************/
	/*chessManClick = true 閃爍棋子 并給線程響應(yīng)*/
	/*chessManClick = false 吃棋子 停止閃爍  并給線程響應(yīng)*/
	boolean chessManClick;
	
	/*控制玩家走棋****************************/
	/*chessPlayClick=1 黑棋走棋*/
	/*chessPlayClick=2 紅棋走棋 默認(rèn)紅棋*/
	/*chessPlayClick=3 雙方都不能走棋*/	
	int chessPlayClick=2;
	
	//控制棋子閃爍的線程
	Thread tmain;
	//把第一次的單擊棋子給線程響應(yīng)
	static int Man,i;	
	
	ChessMainFrame(){}
	
	ChessMainFrame(String Title)
	{
		//獲行客格引用
		con = this.getContentPane();
		con.setLayout(null);
		//實(shí)例化規(guī)則類
		rule = new ChessRule();
		FileVar  = new Vector();
		Var = new Vector();		
		
		//創(chuàng)建工具欄
		jmain = new JToolBar();
		text = new JLabel("  熱烈歡迎");
		text.setToolTipText("提示信息");
		anew = new JButton(" 新 游 戲 "	);
		anew.setToolTipText("重新開始新的一局");
		exit = new JButton(" 退  出 ");
		exit.setToolTipText("退出本程序");
		repent = new JButton(" 悔  棋 ");
		repent.setToolTipText("返回到上次走棋的位置");				
		showOpen = new JButton("打開");
		showOpen.setToolTipText("打開以前棋局");		
		showSave = new JButton("保存");
		showSave.setToolTipText("保存當(dāng)前棋局");
		
		//把組件添加到工具欄
		jmain.setLayout(new GridLayout(0,6));
		jmain.add(anew);
		jmain.add(repent);		
		jmain.add(showOpen);
		jmain.add(showSave);
		jmain.add(exit);
		jmain.add(text);
		jmain.setBounds(0,500,450,30);
		con.add(jmain);
		
		//添加棋子標(biāo)簽
		drawChessMan();
			
		/*注冊(cè)監(jiān)聽者*/
		
		//注冊(cè)按扭監(jiān)聽
		anew.addActionListener(this);
		repent.addActionListener(this);
		exit.addActionListener(this);		
		showOpen.addActionListener(this);
		showSave.addActionListener(this);
				
		//注冊(cè)棋子移動(dòng)監(jiān)聽
		for (int i=0;i<32;i++)
		{
			con.add(play[i]);
			play[i].addMouseListener(this);			
		}
		
		//添加棋盤標(biāo)簽
		con.add(image = new JLabel(new ImageIcon("CChess.GIF")));
		image.setBounds(0,0,445,498);
		image.addMouseListener(this);
		
		//注冊(cè)窗體關(guān)閉監(jiān)聽
		this.addWindowListener(new WindowAdapter() 
		{
			public void windowClosing(WindowEvent we)
			{
				System.exit(0);
			}
		});
		
		//窗體居中
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Dimension frameSize = this.getSize();
		
		if (frameSize.height > screenSize.height)
		{
			frameSize.height = screenSize.height;
		}
		if (frameSize.width > screenSize.width)
		{
			frameSize.width = screenSize.width;
		}
		
		this.setLocation((screenSize.width - frameSize.width) / 2 - 200 ,(screenSize.height - frameSize.height ) / 2 - 290);
	
		this.setIconImage(new ImageIcon("相1.gif").getImage());
		this.setResizable(false);
		this.setTitle(Title);
		this.setSize(450,555);
		this.show();
	}
	
	/*添加棋子方法************/
	public void drawChessMan()
	{
		//流程控制
		int i,k;
		//圖標(biāo)
		Icon in;
				
		//黑色棋子
		
		//車
		in = new ImageIcon("車1.GIF");
		for (i=0,k=10;i<2;i++,k+=385)
		{		
			play[i] = new JLabel(in);
			play[i].setBounds(k,10,40,40);	
			play[i].setName("車1");			
		}	
		
		//馬
		in = new ImageIcon("馬1.GIF");
		for (i=4,k=60;i<6;i++,k+=285)
		{			
			play[i] = new JLabel(in);			
			play[i].setBounds(k,10,40,40);			
			play[i].setName("馬1");
		}
		
		//相
		in = new ImageIcon("相1.GIF");
		for (i=8,k=105;i<10;i++,k+=195)
		{			
			play[i] = new JLabel(in);
			play[i].setBounds(k,10,40,40);			
			play[i].setName("相1");
		}
		
		//士
		in = new ImageIcon("士1.GIF");			
		for (i=12,k=155;i<14;i++,k+=95)
		{			
			play[i] = new JLabel(in);
			play[i].setBounds(k,10,40,40);			
			play[i].setName("士1");
		}
		
		//卒
		in = new ImageIcon("卒1.GIF");			
		for (i=16,k=10;i<21;i++,k+=96.5)
		{		
			play[i] = new JLabel(in);
			play[i].setBounds(k,160,40,40);			
			play[i].setName("卒1" + i);
		}
		
		//炮
		in = new ImageIcon("炮1.GIF");			
		for (i=26,k=60;i<28;i++,k+=289)
		{			
			play[i] = new JLabel(in);
			play[i].setBounds(k,110,40,40);				
			play[i].setName("炮1" + i);
		}
		
		//將
		in = new ImageIcon("將1.GIF");			
		play[30] = new JLabel(in);
		play[30].setBounds(205,10,40,40);			
		play[30].setName("將1");

		
		//紅色棋子
		
		//車
		in = new ImageIcon("車2.GIF");
		for (i=2,k=10;i<4;i++,k+=385)
		{						
			play[i] = new JLabel(in);
			play[i].setBounds(k,450,40,40);		
			play[i].setName("車2");
		}
		
		//馬
		in = new ImageIcon("馬2.GIF");
		for (i=6,k=60;i<8;i++,k+=285)
		{			
			play[i] = new JLabel(in);			
			play[i].setBounds(k,450,40,40);			
			play[i].setName("馬2");
		}
		
		//相
		in = new ImageIcon("相2.GIF");			
		for (i=10,k=105;i<12;i++,k+=195)
		{			
			play[i] = new JLabel(in);
			play[i].setBounds(k,450,40,40);			
			play[i].setName("相2");
		}
		
		//士
		in = new ImageIcon("士2.GIF");			
		for (i=14,k=155;i<16;i++,k+=95)
		{			
			play[i] = new JLabel(in);
			play[i].setBounds(k,450,40,40);			
			play[i].setName("士2");
		}
		
		//兵
		in = new ImageIcon("兵2.GIF");			
		for (i=21,k=10;i<26;i++,k+=96.5)
		{			
			play[i] = new JLabel(in);
			play[i].setBounds(k,300,40,40);			
			play[i].setName("兵2" + i);
		}
		
		//炮
		in = new ImageIcon("炮2.GIF");			
		for (i=28,k=60;i<30;i++,k+=289)
		{			
			play[i] = new JLabel(in);
			play[i].setBounds(k,350,40,40);	
			play[i].setName("炮2" + i);
		}
		
		//帥
		in = new ImageIcon("帥2.GIF");			
		play[31] = new JLabel(in);
		play[31].setBounds(205,450,40,40);		
		play[31].setName("帥2");
	}
	
	/*線程方法控制棋子閃爍*/
	public void run()
	{
		while (true)
		{
			//單擊棋子第一下開始閃爍
			if (chessManClick)
			{				
				play[Man].setVisible(false);					

				//時(shí)間控制
				try
				{
					tmain.sleep(500);
				}
				catch(Exception e){}
				
				play[Man].setVisible(true);								
			}
			
			//閃爍當(dāng)前提示信息 以免用戶看不見
			else 
			{
				text.setVisible(false);
				
				//時(shí)間控制
				try
				{
					tmain.sleep(500);
				}
				catch(Exception e){}
				
				text.setVisible(true);
			}
			
			try
			{
				tmain.sleep(500);
			}	
			catch (Exception e){}			
		}
	}
	
	/*單擊棋子方法************************/
	public void mouseClicked(MouseEvent me)
	{
		System.out.println("Mouse");
		
		//當(dāng)前坐標(biāo)
		int Ex=0,Ey=0;		
		
		//啟動(dòng)線程
		if (tmain == null)
		{
			tmain = new Thread(this);
			tmain.start();
		}		
		
		//單擊棋盤(移動(dòng)棋子)
		if (me.getSource().equals(image))
		{
			//該紅棋走棋的時(shí)候
			if (chessPlayClick == 2 && play[Man].getName().charAt(1) == '2')
			{	
				Ex = play[Man].getX();
				Ey = play[Man].getY();
				
				//移動(dòng)卒、兵
				if (Man > 15 && Man < 26)
				{				
					rule.armsRule(Man,play[Man],me);
				}			
				
				//移動(dòng)炮
				else if (Man > 25 && Man < 30)
				{			
					rule.cannonRule(play[Man],play,me);
				}
				
				//移動(dòng)車
				else if (Man >=0 && Man < 4)
				{
					rule.cannonRule(play[Man],play,me);
				}
				
				//移動(dòng)馬
				else if (Man > 3 && Man < 8)
				{
					rule.horseRule(play[Man],play,me);
				}
				
				//移動(dòng)相、象
				else if (Man > 7 && Man < 12)
				{
					rule.elephantRule(Man,play[Man],play,me);
				}
				
				//移動(dòng)仕、士
				else if (Man > 11 && Man < 16)
				{
					rule.chapRule(Man,play[Man],play,me);
				}
				
				//移動(dòng)將、帥
				else if (Man == 30 || Man == 31)
				{				
					rule.willRule(Man,play[Man],play,me);
				}
				
				//是否走棋錯(cuò)誤(是否在原地沒有動(dòng))
				if (Ex == play[Man].getX() && Ey == play[Man].getY())
				{
					text.setText("  紅棋走棋");
					chessPlayClick=2;
				}
				
				else 
				{
					text.setText("  黑棋走棋");
					chessPlayClick=1;
				}
				
			}//if
			
			//該黑棋走棋的時(shí)候
			else if (chessPlayClick == 1 && play[Man].getName().charAt(1) == '1')
			{		
				Ex = play[Man].getX();
				Ey = play[Man].getY();
						
				//移動(dòng)卒、兵
				if (Man > 15 && Man < 26)
				{				
					rule.armsRule(Man,play[Man],me);
				}			
				
				//移動(dòng)炮
				else if (Man > 25 && Man < 30)
				{			
					rule.cannonRule(play[Man],play,me);
				}
				
				//移動(dòng)車
				else if (Man >=0 && Man < 4)
				{
					rule.cannonRule(play[Man],play,me);
				}
				
				//移動(dòng)馬
				else if (Man > 3 && Man < 8)
				{
					rule.horseRule(play[Man],play,me);
				}
				
				//移動(dòng)相、象
				else if (Man > 7 && Man < 12)
				{
					rule.elephantRule(Man,play[Man],play,me);
				}
				
				//移動(dòng)仕、士
				else if (Man > 11 && Man < 16)
				{
					rule.chapRule(Man,play[Man],play,me);
				}
				

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久影院午夜片一区| 国产毛片精品一区| 夜夜亚洲天天久久| 一区二区三区电影在线播| 国产精品久久久久久久久图文区| 国产精品天天摸av网| 国产精品美女久久久久高潮 | 亚洲成人av中文| 亚洲一区二区三区美女| 亚洲国产日日夜夜| 午夜私人影院久久久久| 五月激情六月综合| 日韩1区2区3区| 精品一二三四区| 国产精品18久久久久久久久 | 国产成人综合在线观看| 成人综合在线观看| 色婷婷国产精品久久包臀| 欧美在线你懂得| 欧美绝品在线观看成人午夜影视| 欧美一区二区三区在| 精品日韩欧美一区二区| 久久精子c满五个校花| 国产精品伦一区二区三级视频| 国产精品第五页| 一区二区三区四区乱视频| 五月天一区二区三区| 麻豆91在线观看| 福利一区二区在线| 色哟哟国产精品| 欧美一二三四区在线| 久久人人97超碰com| 亚洲欧美在线aaa| 一区二区国产盗摄色噜噜| 日韩av中文字幕一区二区三区| 国产精品一区二区黑丝| 色婷婷国产精品| 欧美不卡在线视频| 欧美极品少妇xxxxⅹ高跟鞋 | 91在线视频18| 欧美日韩成人一区二区| 国产丝袜美腿一区二区三区| 一区二区欧美视频| 久久er99热精品一区二区| 99久久精品情趣| 欧美一区二区三区视频| 国产精品久99| 日韩电影在线一区二区三区| 播五月开心婷婷综合| 欧美另类videos死尸| 国产精品免费观看视频| 男人的天堂久久精品| 91色porny在线视频| 精品国产青草久久久久福利| 亚洲精品中文字幕在线观看| 久久99精品国产麻豆婷婷| 在线观看www91| 国产人成一区二区三区影院| 日韩国产欧美视频| 97久久人人超碰| 久久亚洲一区二区三区四区| 亚洲一区二区三区中文字幕在线| 国产不卡视频在线播放| 欧美一区二区免费| 亚洲狠狠丁香婷婷综合久久久| 国产美女娇喘av呻吟久久| 欧美日韩国产a| 亚洲人快播电影网| 国产成人精品免费视频网站| 69堂精品视频| 一区二区三区色| 粉嫩欧美一区二区三区高清影视| 日韩三区在线观看| 亚洲国产乱码最新视频| 99v久久综合狠狠综合久久| 国产午夜精品一区二区| 久久精品国产精品青草| 欧美精品日日鲁夜夜添| 一区二区三区波多野结衣在线观看 | 国产美女久久久久| 日韩女优电影在线观看| 日本中文一区二区三区| 欧美日韩国产综合视频在线观看| 亚洲欧美日韩国产手机在线 | 久久亚洲二区三区| 日本在线不卡视频| 欧美日本一区二区| 亚洲成人资源在线| 日本精品一区二区三区高清| 亚洲欧美日韩国产综合在线| 99国产精品国产精品久久| 国产精品素人一区二区| 风间由美性色一区二区三区| 国产欧美一区二区三区沐欲 | 精品嫩草影院久久| 久久国产精品区| 日韩一区二区麻豆国产| 日本强好片久久久久久aaa| 欧美精品成人一区二区三区四区| 亚洲小少妇裸体bbw| 欧美色区777第一页| 亚洲国产视频一区二区| 欧美日韩的一区二区| 日韩av中文字幕一区二区三区| 制服丝袜中文字幕亚洲| 日本欧美一区二区| 欧美不卡123| 国产精品自拍三区| 欧美国产精品一区二区三区| 成人高清av在线| 一区二区三区中文字幕电影| 欧美亚洲综合久久| 日韩国产在线观看一区| 日韩写真欧美这视频| 极品少妇xxxx精品少妇| 日本一区二区视频在线| av亚洲精华国产精华| 亚洲永久精品大片| 欧美一区二区视频在线观看| 国产综合久久久久久久久久久久| 国产日韩精品一区二区三区| 91在线免费看| 午夜成人在线视频| 久久综合久久综合久久综合| 成人一级视频在线观看| 亚洲日本va在线观看| 欧美日韩国产另类不卡| 精品亚洲欧美一区| 成人欧美一区二区三区黑人麻豆| 欧美亚洲综合色| 久久99精品国产麻豆婷婷| 日本一区二区成人| 欧美日韩在线免费视频| 蜜臀av性久久久久av蜜臀妖精| 国产视频一区二区三区在线观看| 91麻豆.com| 三级久久三级久久| 国产网红主播福利一区二区| 色综合天天天天做夜夜夜夜做| 爽好久久久欧美精品| 亚洲国产精品v| 欧美日韩一区中文字幕| 国产一区91精品张津瑜| 亚洲乱码国产乱码精品精98午夜| 91精品国产综合久久精品| 成人午夜看片网址| 日韩国产在线观看| 中文字幕一区二区三中文字幕| 欧美日韩精品欧美日韩精品一综合| 国产一区二区三区黄视频| 亚洲激情成人在线| 久久久综合激的五月天| 91黄色免费看| 国产成人av电影在线观看| 天堂久久一区二区三区| 国产精品乱码一区二区三区软件| 欧美精品vⅰdeose4hd| 99久久综合色| 精品中文字幕一区二区| 一区二区三区影院| 日本一区二区三区视频视频| 欧美美女一区二区三区| 成人精品一区二区三区四区 | 日韩女优电影在线观看| 在线免费观看成人短视频| 国产91富婆露脸刺激对白| 青青草97国产精品免费观看| 一区二区欧美视频| 国产精品久久久久久久久晋中| 欧美一区二区福利在线| 欧美性大战久久| 99国产精品久久久久久久久久 | 成人白浆超碰人人人人| 蜜臀精品久久久久久蜜臀| 亚洲一区二区在线观看视频| 中文久久乱码一区二区| 精品久久一区二区| 欧美日韩免费高清一区色橹橹 | 色综合色综合色综合色综合色综合 | 亚洲国产欧美日韩另类综合 | 国产精品影音先锋| 三级成人在线视频| 亚洲影视在线观看| 最好看的中文字幕久久| 久久精品视频免费观看| 精品国产不卡一区二区三区| 欧美喷潮久久久xxxxx| 在线观看精品一区| 在线精品视频免费播放| 99久久精品免费观看| 不卡av在线网| 国产·精品毛片| 国产91精品露脸国语对白| 国产精品系列在线观看| 国产精品主播直播| 国产精品亚洲专一区二区三区| 久草精品在线观看| 精品一区二区在线看| 精品亚洲免费视频| 麻豆传媒一区二区三区|