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

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

?? chess.java

?? 用JAVA編寫的中國象棋源代碼供JAVA愛好者參考學習!
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:

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("中國象棋");
	}
}

//主框架類
class ChessMainFrame extends JFrame implements ActionListener,MouseListener,Runnable{
	//玩家
	JLabel play[] = new JLabel[32];
	//棋盤
	JLabel image;	
	//窗格
	Container con;
	//工具欄
	JToolBar jmain;	
	//重新開始
	JButton anew;
	//悔棋
	JButton repent;
	//退出
	JButton exit;
	//當前信息
	JLabel text;
	
	//保存當前操作
	Vector Var;
	
	//規(guī)則類對象(使于調(diào)用方法)
	ChessRule rule;
	
	/**
	** 單擊棋子
	** chessManClick = true 閃爍棋子 并給線程響應
	** chessManClick = false 吃棋子 停止閃爍  并給線程響應
	*/
	boolean chessManClick;
	
	/**
	** 控制玩家走棋
	** chessPlayClick=1 黑棋走棋
	** chessPlayClick=2 紅棋走棋 默認紅棋
	** chessPlayClick=3 雙方都不能走棋
	*/
	int chessPlayClick=2;
	
	//控制棋子閃爍的線程
	Thread tmain;
	//把第一次的單擊棋子給線程響應
	static int Man,i;
	
	ChessMainFrame(){
		new ChessMainFrame("中國象棋");
	}
	
	/**
	** 構(gòu)造函數(shù)
	** 初始化圖形用戶界面
	*/
	ChessMainFrame(String Title){
		//獲行客格引用
		con = this.getContentPane();
		con.setLayout(null);
		//實例化規(guī)則類
		rule = new ChessRule();
		Var = new Vector();
		
		//創(chuàng)建工具欄
		jmain = new JToolBar();
		text = new JLabel("歡迎使用象棋對弈系統(tǒng)");
		//當鼠標放上顯示信息
		text.setToolTipText("信息提示");
		anew = new JButton(" 新 游 戲 ");
		anew.setToolTipText("重新開始新的一局");
		exit = new JButton(" 退  出 ");
		exit.setToolTipText("退出象棋程序程序");
		repent = new JButton(" 悔  棋 ");
		repent.setToolTipText("返回到上次走棋的位置");

		//把組件添加到工具欄
		jmain.setLayout(new GridLayout(0,4));
		jmain.add(anew);
		jmain.add(repent);
		jmain.add(exit);
		jmain.add(text);
		jmain.setBounds(0,0,558,30);
		con.add(jmain);
		
		//添加棋子標簽
		drawChessMan();

		//注冊按扭監(jiān)聽
		anew.addActionListener(this);
		repent.addActionListener(this);
		exit.addActionListener(this);		
				
		//注冊棋子移動監(jiān)聽
		for (int i=0;i<32;i++){
			con.add(play[i]);
			play[i].addMouseListener(this);
		}
		
		//添加棋盤標簽
		con.add(image = new JLabel(new ImageIcon("image\\Main.GIF")));
		image.setBounds(0,30,558,620);
		image.addMouseListener(this);
		
		//注冊窗體關(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 - 280 ,(screenSize.height - frameSize.height ) / 2 - 350);
	
		//設置
		this.setIconImage(new ImageIcon("image\\紅將.GIF").getImage());
		this.setResizable(false);
		this.setTitle(Title);
		this.setSize(558,670);
		this.show();
	}
	
	/**
	** 添加棋子方法
	*/
	public void drawChessMan(){
		//流程控制
		int i,k;
		//圖標
		Icon in;
				
		//黑色棋子
		
		//車
		in = new ImageIcon("image\\黑車.GIF");
		for (i=0,k=24;i<2;i++,k+=456){		
			play[i] = new JLabel(in);
			play[i].setBounds(k,56,55,55);	
			play[i].setName("車1");			
		}	
		
		//馬
		in = new ImageIcon("image\\黑馬.GIF");
		for (i=4,k=81;i<6;i++,k+=342){	
			play[i] = new JLabel(in);
			play[i].setBounds(k,56,55,55);
			play[i].setName("馬1");
		}
		
		//相
		in = new ImageIcon("image\\黑象.GIF");
		for (i=8,k=138;i<10;i++,k+=228){	
			play[i] = new JLabel(in);
			play[i].setBounds(k,56,55,55);
			play[i].setName("象1");
		}
		
		//士
		in = new ImageIcon("image\\黑士.GIF");
		for (i=12,k=195;i<14;i++,k+=114){
			play[i] = new JLabel(in);
			play[i].setBounds(k,56,55,55);
			play[i].setName("士1");
		}
		
		//卒
		in = new ImageIcon("image\\黑卒.GIF");
		for (i=16,k=24;i<21;i++,k+=114){
			play[i] = new JLabel(in);
			play[i].setBounds(k,227,55,55);
			play[i].setName("卒1" + i);
		}
		
		//炮
		in = new ImageIcon("image\\黑炮.GIF");			
		for (i=26,k=81;i<28;i++,k+=342){
			play[i] = new JLabel(in);
			play[i].setBounds(k,170,55,55);
			play[i].setName("炮1" + i);
		}
		
		//將
		in = new ImageIcon("image\\黑將.GIF");
		play[30] = new JLabel(in);
		play[30].setBounds(252,56,55,55);
		play[30].setName("將1");

		//紅色棋子
		//車
		in = new ImageIcon("image\\紅車.GIF");
		for (i=2,k=24;i<4;i++,k+=456){
			play[i] = new JLabel(in);
			play[i].setBounds(k,569,55,55);
			play[i].setName("車2");
		}
		
		//馬
		in = new ImageIcon("image\\紅馬.GIF");
		for (i=6,k=81;i<8;i++,k+=342){
			play[i] = new JLabel(in);
			play[i].setBounds(k,569,55,55);
			play[i].setName("馬2");
		}
		
		//相
		in = new ImageIcon("image\\紅象.GIF");			
		for (i=10,k=138;i<12;i++,k+=228){
			play[i] = new JLabel(in);
			play[i].setBounds(k,569,55,55);
			play[i].setName("象2");
		}
		
		//士
		in = new ImageIcon("image\\紅士.GIF");
		for (i=14,k=195;i<16;i++,k+=114){
			play[i] = new JLabel(in);
			play[i].setBounds(k,569,55,55);
			play[i].setName("士2");
		}
		
		//兵
		in = new ImageIcon("image\\紅卒.GIF");
		for (i=21,k=24;i<26;i++,k+=114){
			play[i] = new JLabel(in);
			play[i].setBounds(k,398,55,55);
			play[i].setName("卒2" + i);
		}
		
		//炮
		in = new ImageIcon("image\\紅炮.GIF");
		for (i=28,k=81;i<30;i++,k+=342){
			play[i] = new JLabel(in);
			play[i].setBounds(k,455,55,55);
			play[i].setName("炮2" + i);
		}
		
		//帥
		in = new ImageIcon("image\\紅將.GIF");			
		play[31] = new JLabel(in);
		play[31].setBounds(252,569,55,55);		
		play[31].setName("帥2");
	}
	
	/**
	** 線程方法控制棋子閃爍
	*/
	public void run(){
		while (true){
			//單擊棋子第一下開始閃爍
			if (chessManClick){
				play[Man].setVisible(false);

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

				//移動卒、兵
				if (Man > 15 && Man < 26){
					rule.armsRule(Man,play[Man],me);
				}
				
				//移動炮
				else if (Man > 25 && Man < 30){
					rule.cannonRule(play[Man],play,me);
				}
				
				//移動車
				else if (Man >=0 && Man < 4){
					rule.cannonRule(play[Man],play,me);
				}
				
				//移動馬
				else if (Man > 3 && Man < 8){
					rule.horseRule(play[Man],play,me);
				}
				
				//移動相、象
				else if (Man > 7 && Man < 12){
					rule.elephantRule(Man,play[Man],play,me);
				}
				
				//移動仕、士
				else if (Man > 11 && Man < 16){
					rule.chapRule(Man,play[Man],play,me);
				}
				
				//移動將、帥
				else if (Man == 30 || Man == 31){
					rule.willRule(Man,play[Man],play,me);
				}
				
				//是否走棋錯誤(是否在原地沒有動)
				if (Ex == play[Man].getX() && Ey == play[Man].getY()){
					text.setText("               黑棋走棋");
					chessPlayClick=1;
				}
				
				else {
					text.setText("               紅棋走棋");
					chessPlayClick=2;	
				}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成精品久久久久久| 一本一道波多野结衣一区二区| 日本韩国一区二区三区视频| 亚洲欧洲成人自拍| 色综合天天综合网天天狠天天 | 欧美日韩国产首页| 亚洲国产毛片aaaaa无费看 | 天堂蜜桃一区二区三区| 4438亚洲最大| 韩国女主播一区二区三区| 久久久三级国产网站| aaa国产一区| 亚洲尤物在线视频观看| 欧美疯狂性受xxxxx喷水图片| 蜜桃久久av一区| 国产亚洲欧美日韩俺去了| 成人国产精品免费网站| 一区二区三区精密机械公司| 欧美日韩国产区一| 国产一区二区三区香蕉| 亚洲欧美日韩中文播放| 日韩欧美中文一区二区| av在线不卡网| 亚洲福利一区二区| 久久精品免视看| 欧美这里有精品| 久99久精品视频免费观看| 国产精品久久久久7777按摩 | 亚洲国产cao| 久久影院午夜论| 色婷婷综合中文久久一本| 免费高清不卡av| 亚洲人成在线观看一区二区| 亚洲三级在线看| 91麻豆精品国产91久久久久| 国产成人综合亚洲91猫咪| 亚洲国产日韩在线一区模特| 久久综合久色欧美综合狠狠| 在线免费不卡视频| 国产乱子伦一区二区三区国色天香| ...av二区三区久久精品| 欧美一级国产精品| 色狠狠色狠狠综合| 国产91综合一区在线观看| 香蕉成人伊视频在线观看| 国产精品视频看| 精品久久久久一区| 欧美裸体一区二区三区| eeuss国产一区二区三区| 九九国产精品视频| 婷婷六月综合亚洲| 亚洲三级电影网站| 国产日韩欧美高清在线| 欧美日韩国产一区| 在线观看欧美黄色| 成人av网站大全| 国产精品一区在线| 蜜臀久久99精品久久久久久9| 一区二区三区四区亚洲| 亚洲国产经典视频| 久久精品一二三| 欧美xfplay| 欧美一区二区三区思思人| 欧美日韩在线播放一区| 一本大道av伊人久久综合| 91精品国产综合久久蜜臀| 91福利在线免费观看| jlzzjlzz亚洲日本少妇| 国产69精品久久久久毛片| 国内外成人在线| 久久电影网站中文字幕| 日韩黄色在线观看| 奇米影视在线99精品| 午夜在线成人av| 亚洲aⅴ怡春院| 亚洲va欧美va天堂v国产综合| 亚洲已满18点击进入久久| 亚洲婷婷在线视频| 亚洲男女一区二区三区| 亚洲色大成网站www久久九九| 18成人在线观看| 自拍视频在线观看一区二区| 中文字幕一区二区在线观看| 国产精品麻豆欧美日韩ww| 日韩毛片在线免费观看| 亚洲天堂免费看| 亚洲免费av高清| 亚洲国产va精品久久久不卡综合| 亚洲一级片在线观看| 亚洲高清免费观看| 免费在线一区观看| 国内成人自拍视频| 国产成人综合在线观看| caoporn国产精品| 欧美视频日韩视频在线观看| 色爱区综合激月婷婷| 欧美三级蜜桃2在线观看| 欧美一区二区女人| 久久综合久久久久88| 久久精品亚洲麻豆av一区二区| 国产喷白浆一区二区三区| 国产精品乱人伦一区二区| 亚洲综合图片区| 婷婷久久综合九色综合绿巨人 | 久久97超碰国产精品超碰| 国产suv一区二区三区88区| 99精品久久免费看蜜臀剧情介绍| 国产日本欧洲亚洲| 亚洲视频在线观看三级| 日日摸夜夜添夜夜添精品视频| 久久疯狂做爰流白浆xx| caoporen国产精品视频| 欧美日韩激情一区二区三区| 久久久一区二区三区捆绑**| 国产精品国产三级国产普通话蜜臀| 亚洲午夜私人影院| 精品一区二区三区免费| 91一区二区三区在线观看| 欧美老女人第四色| 欧美激情中文字幕一区二区| 一区二区三区日本| 加勒比av一区二区| 91久久精品国产91性色tv| 欧美不卡一区二区三区四区| 亚洲欧美日韩综合aⅴ视频| 久草这里只有精品视频| 在线看日韩精品电影| 久久久久久久性| 首页亚洲欧美制服丝腿| 成人免费看的视频| 欧美α欧美αv大片| 亚洲午夜免费电影| 波多野结衣在线一区| 欧美一区二区三区在线观看| 亚洲女人****多毛耸耸8| 国内精品伊人久久久久av一坑| 在线中文字幕一区| 国产精品久久午夜| 国产资源在线一区| 欧美日韩国产精品自在自线| 国产精品狼人久久影院观看方式| 美女尤物国产一区| 欧美日韩另类一区| 成人免费一区二区三区在线观看| 精品一区二区综合| 制服丝袜成人动漫| 亚洲愉拍自拍另类高清精品| 日韩一区二区三区视频在线| 亚洲精品免费在线| 国产91高潮流白浆在线麻豆| 精品久久国产老人久久综合| 爽爽淫人综合网网站| 91行情网站电视在线观看高清版| 国产精品视频观看| 国产电影精品久久禁18| 精品免费日韩av| 蜜桃视频免费观看一区| 91精品在线免费观看| 亚洲成人你懂的| 欧美三级电影在线看| 一级精品视频在线观看宜春院 | 国产在线乱码一区二区三区| 欧美日韩一卡二卡| 亚洲第一二三四区| 欧美性生活久久| 亚洲一区在线观看网站| 91黄色免费观看| 亚洲国产成人av网| 欧美日韩一本到| 日韩福利电影在线| 欧美一卡2卡3卡4卡| 日韩av网站在线观看| 69成人精品免费视频| 日本不卡视频在线| 亚洲精品一区二区三区影院| 激情综合色丁香一区二区| 91精品国产乱| 久热成人在线视频| 久久久久久黄色| 成人av集中营| 亚洲另类中文字| 欧美日韩你懂的| 美日韩一区二区| 久久久99精品久久| 成人av免费在线| 国产a久久麻豆| 亚洲老妇xxxxxx| 欧美伊人精品成人久久综合97| 亚洲高清在线视频| 日韩欧美视频一区| 国产一区二区在线视频| 国产精品乱人伦一区二区| 在线观看亚洲精品视频| 丝袜亚洲另类丝袜在线| 欧美精品一区二区三区在线播放| 国产精品亚洲一区二区三区在线 | 久久亚洲精品国产精品紫薇| 国产精品996| 一区二区理论电影在线观看| 欧美电影一区二区|