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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chess.java

?? 中國象棋(源碼、發布程序)下載到電腦后可以在JAVA環境下運行 各位喜歡象棋的朋友娛樂娛樂
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/*
 *中國象棋Java版V3.0
 *作者
 *源文件:Chess.java
 *最后修改時間:2005-8-20
 *添加功能:實現了當前棋局的保存
 */

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;
	
	//規則類對象(使于調用方法)
	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("中國象棋");
	}
	
	/**
	** 構造函數
	** 初始化圖形用戶界面
	*/
	ChessMainFrame(String Title){
		//獲行客格引用
		con = this.getContentPane();
		con.setLayout(null);
		//實例化規則類
		rule = new ChessRule();
		Var = new Vector();
		
		//創建工具欄
		jmain = new JToolBar();
		text = new JLabel("歡迎使用象棋對弈系統");
		//當鼠標放上顯示信息
		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();

		//注冊按扭監聽
		anew.addActionListener(this);
		repent.addActionListener(this);
		exit.addActionListener(this);		
				
		//注冊棋子移動監聽
		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);
		
		//注冊窗體關閉監聽
		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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线视频一区二区三区| 精品国产伦一区二区三区免费 | 日韩一区二区高清| 日本视频在线一区| 2014亚洲片线观看视频免费| 国产乱码一区二区三区| 国产亚洲美州欧州综合国| 床上的激情91.| 一区二区三区四区视频精品免费 | 国产精品亚洲视频| 色综合av在线| 欧美一区二区日韩| 激情伊人五月天久久综合| 精品国产亚洲在线| 丁香婷婷综合激情五月色| 国产乱妇无码大片在线观看| 久久婷婷久久一区二区三区| aaa欧美日韩| 香蕉加勒比综合久久| 精品裸体舞一区二区三区| 国产裸体歌舞团一区二区| 国产精品免费视频网站| 欧洲国内综合视频| 美女视频黄 久久| 国产精品三级av| 在线视频国内一区二区| 麻豆国产一区二区| 国产精品私房写真福利视频| 欧美中文字幕不卡| 精品一区二区成人精品| 亚洲欧美日韩中文播放| 这里只有精品免费| 欧美视频完全免费看| 精品成人在线观看| av在线播放不卡| 日本美女一区二区三区视频| 国产精品视频一区二区三区不卡| 欧美亚洲综合色| 国产精品资源在线看| 亚洲一区二区三区四区中文字幕| 精品对白一区国产伦| 色婷婷久久99综合精品jk白丝| 久久国产精品露脸对白| 亚洲欧美一区二区三区久本道91| 精品国产一区二区精华| 色狠狠一区二区三区香蕉| 韩国精品主播一区二区在线观看| 亚洲午夜电影在线观看| 国产精品久久久久一区二区三区共| 91精品国产入口| 欧洲激情一区二区| 成人av中文字幕| 国产综合色精品一区二区三区| 亚洲一区二区欧美日韩| 国产精品三级av| 久久久久久夜精品精品免费| 久久99久久精品| 欧美三级三级三级| 懂色av中文字幕一区二区三区| 三级成人在线视频| 亚洲一区影音先锋| 中文字幕亚洲区| 久久亚洲一级片| 日韩欧美一级片| 91精品综合久久久久久| 欧美亚洲综合久久| 欧美专区亚洲专区| 在线视频观看一区| 色婷婷av一区二区三区之一色屋| 成人免费视频一区| 国产成人啪免费观看软件 | 欧美美女网站色| 欧美天堂一区二区三区| 在线看日本不卡| 91视视频在线观看入口直接观看www | 欧美一区二区三区四区久久| 精品1区2区3区| 欧美日韩二区三区| 欧美日韩欧美一区二区| 日本在线不卡视频| 无码av中文一区二区三区桃花岛| 一级女性全黄久久生活片免费| 日韩一区在线免费观看| 日韩美女视频一区| 一区二区三区四区五区视频在线观看| 亚洲欧美综合色| 亚洲黄色性网站| 亚洲乱码国产乱码精品精的特点 | 日韩一区二区在线看| 日韩一区二区三区精品视频| 在线综合亚洲欧美在线视频| 日韩午夜三级在线| 久久毛片高清国产| 亚洲国产精品黑人久久久| 国产精品久久久99| 一区二区三区在线视频免费观看| 亚洲高清在线精品| 美女视频一区二区| 欧美精品一区二区精品网| 国产精品免费观看视频| 久久久夜色精品亚洲| 欧美极品aⅴ影院| 亚洲精品成人天堂一二三| 亚洲一区二区在线视频| 蜜桃一区二区三区四区| 国产一区二区美女诱惑| 99久久综合99久久综合网站| 欧美色大人视频| 精品国产乱码久久久久久1区2区| 国产农村妇女毛片精品久久麻豆 | 亚洲一二三区视频在线观看| 日本一不卡视频| 国产成人av电影免费在线观看| 成人av电影免费在线播放| 在线免费观看日本一区| 精品国产乱码久久久久久久| 最新高清无码专区| 日韩国产欧美在线播放| 国产aⅴ综合色| 7777女厕盗摄久久久| 国产精品女主播av| 日韩国产在线一| 99精品视频一区二区三区| 日韩欧美国产麻豆| 一区二区三区日本| 国产精品综合网| 欧美丰满高潮xxxx喷水动漫| 国产精品蜜臀在线观看| 免费精品视频在线| 色爱区综合激月婷婷| 久久蜜桃一区二区| 亚洲va国产va欧美va观看| 国产精品123区| 欧美一区二区在线播放| 亚洲另类在线一区| 国产美女娇喘av呻吟久久| 69堂成人精品免费视频| 亚洲另类在线制服丝袜| 国产成人小视频| 麻豆91在线看| 亚洲午夜精品17c| 国产iv一区二区三区| 3atv一区二区三区| 亚洲日本成人在线观看| 久久精品国产精品亚洲综合| 91久久国产最好的精华液| 日本一区二区综合亚洲| 蜜臀av性久久久久av蜜臀妖精| 国产欧美一区二区三区沐欲| 蜜桃av一区二区三区电影| 日本精品一区二区三区高清| 国产女人水真多18毛片18精品视频| 久久se精品一区精品二区| 欧美日韩免费观看一区三区| 亚洲人xxxx| 成人精品免费视频| 久久久精品2019中文字幕之3| 日本不卡一二三| 91精品啪在线观看国产60岁| 亚洲一级片在线观看| 一本到不卡免费一区二区| 国产精品白丝在线| 9人人澡人人爽人人精品| 国产精品麻豆视频| zzijzzij亚洲日本少妇熟睡| 国产日韩欧美制服另类| 国产成人av福利| 国产精品欧美久久久久无广告 | 国产精品久久久久精k8| 国产精品香蕉一区二区三区| 欧美videofree性高清杂交| 欧美bbbbb| 欧美大片免费久久精品三p| 青青草97国产精品免费观看| 欧美一级黄色片| 国产综合色视频| 欧美国产精品劲爆| 99久久er热在这里只有精品66| 成人免费小视频| 欧美视频在线一区二区三区| 亚洲午夜国产一区99re久久| 欧美日韩高清影院| 美日韩黄色大片| 久久九九久久九九| 96av麻豆蜜桃一区二区| 亚洲成人综合网站| 日韩欧美一区二区视频| 在线不卡的av| 精品一二线国产| 中文字幕欧美激情一区| 色欧美片视频在线观看在线视频| 亚洲尤物视频在线| 欧美tk—视频vk| 成人毛片在线观看| 一区二区激情视频| 亚洲精品国产一区二区精华液 | 欧美一区二区在线不卡| 黑人精品欧美一区二区蜜桃| 中文字幕一区av| 51精品国自产在线|