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

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

?? gameloader.java

?? chess 一個beguanyu國際象棋的一個Java源碼
?? JAVA
字號:
/*  GameLoader - A class to follow a chess game, while it is loaded               from a PGN file.  Copyright (C) 2003 The Java-Chess team <info@java-chess.de>  This program is free software; you can redistribute it and/or  modify it under the terms of the GNU General Public License  as published by the Free Software Foundation; either version 2  of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.  You should have received a copy of the GNU General Public License  along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*/   package de.java_chess.javaChess.pgn;import de.java_chess.javaChess.bitboard.*;import de.java_chess.javaChess.board.*;import de.java_chess.javaChess.engine.*;import de.java_chess.javaChess.engine.hashtable.*;import de.java_chess.javaChess.game.*;import de.java_chess.javaChess.notation.*;import de.java_chess.javaChess.piece.*;import de.java_chess.javaChess.ply.*;import de.java_chess.javaChess.position.*;/** * This class follows a chess game, while it is loaded from a PGN file. */public class GameLoader {    // Instance variables    /**     * A game for the generator.     */    Game _game;    /**     * The current board of the game.     */    Board _board;    /**     * A ply generator to check for valid moves.     */    PlyGenerator _plyGenerator;    /**     * The analyzer, that is required by the ply generator.     */    BitBoardAnalyzer _analyzer;    /**     * Flag to indicate, what color moves.     */    boolean _whiteMoves = true;    // Constructors    /**     * Create a new game loader instance.     */    public GameLoader() {        // Create a new game.        _game = new GameImpl();        // Create a new board.        _board = new BitBoardImpl();	        // Create the ply generator.        _plyGenerator = new PlyGenerator( _game, (BitBoard)_board, new PlyHashtableImpl( 10));        // And the analyzer.        _analyzer = new BitBoardAnalyzerImpl( _game, _plyGenerator);	        _plyGenerator.setAnalyzer( _analyzer);        // Set the pieces on their initial positions.        _board.initialPosition();                   }    // Methods    /**     * Turn a loaded ply fragment from a PGN file into a notated ply.     *     * @param plyFragment The info from the PGN file.     *     * @return The notation for the ply, if we could recognize the ply, or null.     */    public final PlyNotation completePly( PGNPlyFragment plyFragment) {	// Create a ply from the ply fragment.	Ply ply = null;	PlyNotation notation = null;	// If the origin of the move is missing, compute it from the destination	// ...not necessary yet...	if( plyFragment.isCastling()) {	    ply = new CastlingPlyImpl( new PositionImpl( _whiteMoves ? 4 : 60), plyFragment.isLeftCastling());	    notation = new PlyNotationImpl( ply, _board.getPiece( ply.getSource()));	} else {	    // Check, how complete our fragment is so far.	    if( plyFragment.getOrigin() == null) {  // If there was no origin given, try to figure it from the currently available moves		// Compute all the available moves for this board.		Ply [] plies = _plyGenerator.getPliesForColor( _whiteMoves);    		for( int i=0; i < plies.length; i++) {		    if( ( plies[i].getDestination() == plyFragment.getDestination())                        && ( _board.getPiece( plies[i].getSource()).getType() == plyFragment.getPieceType())) {			// Found the right ply!			plyFragment.setOrigin( plies[i].getSource());						break;  // Stop the search for the ply origin.		    }		}	    }	    if( plyFragment.isPawnPromotion()) {		ply = new TransformationPlyImpl( plyFragment.getOrigin(), plyFragment.getDestination(), plyFragment.getNewPieceType(), _board.getPiece( plyFragment.getDestination()) == null);		notation = new PlyNotationImpl( ply, _board.getPiece( ply.getSource()));	    } else {		ply = new PlyImpl( plyFragment.getOrigin(), plyFragment.getDestination(), _board.getPiece( plyFragment.getDestination()) == null);		notation = new PlyNotationImpl( ply, _board.getPiece( ply.getSource()));	    }	    // Verifiy, if the notation doesn't show a capture on an empty sqare.	    if( plyFragment.isCapture() && _board.getPiece( plyFragment.getDestination()) == null) {		return null;	    }	}	// No perform the ply on our simulated board.	doPly( ply);	// And return the notation for the ply.	return notation;    }    /**     * Perform a ply, when it is completely loaded.     *     * param ply The ply to perform.     */    private final void doPly( Ply ply) {	_game.doPly( ply);        _board.doPly( ply);	// The other color is about to move now.	_whiteMoves = ! _whiteMoves;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷狠狠综合| 99久久99久久综合| 五月天精品一区二区三区| 综合久久久久久久| 日韩理论电影院| 亚洲免费伊人电影| 亚洲裸体xxx| 午夜精品久久久久久久99樱桃| 亚洲欧美日本在线| 一区二区三区在线不卡| 亚洲最大色网站| 日韩和欧美一区二区三区| 青青草精品视频| 国产一区二区三区在线观看精品| 国产一区91精品张津瑜| 国产精品自在在线| 99久久99久久综合| 欧美一级淫片007| 久久久久久久综合色一本| 亚洲国产精品精华液2区45| 中文字幕在线观看不卡| 亚洲国产欧美在线| 精品一区二区三区影院在线午夜| 国产九色sp调教91| 91网上在线视频| 欧美一区二区啪啪| 中文欧美字幕免费| 视频一区欧美精品| 国产99久久久国产精品潘金| 一本到不卡免费一区二区| 欧美一区欧美二区| 中文字幕一区二区三区精华液 | 欧美成人精品3d动漫h| 久久婷婷成人综合色| 国产精品传媒在线| 免费在线成人网| 色视频欧美一区二区三区| 日韩欧美二区三区| 亚洲一二三四在线观看| 国产一区91精品张津瑜| 欧美日韩免费观看一区二区三区| 26uuu精品一区二区| 亚洲一区二区三区激情| 国产成人av福利| 91精品国产综合久久久蜜臀粉嫩 | 亚洲欧美一区二区久久| 久久精品99久久久| 欧美亚洲一区三区| 亚洲在线成人精品| 国产成人精品影视| 欧美在线你懂得| 欧美激情资源网| 免费成人你懂的| 欧洲亚洲精品在线| 国产精品麻豆久久久| 秋霞午夜av一区二区三区| 欧美中文字幕不卡| 亚洲日韩欧美一区二区在线| 国产精品综合网| 精品国产亚洲在线| 日本不卡高清视频| 欧美区在线观看| 性感美女极品91精品| 色吧成人激情小说| 亚洲人成精品久久久久| 成人av电影免费观看| 久久久99久久精品欧美| 精品夜夜嗨av一区二区三区| 欧美一区二区视频免费观看| 午夜精品一区二区三区三上悠亚| 欧美无砖专区一中文字| 亚洲综合在线视频| 欧美亚洲综合色| 日韩精品视频网| 日韩欧美一区在线| 韩国视频一区二区| 久久久久久免费网| 成人ar影院免费观看视频| 国产精品蜜臀av| 色拍拍在线精品视频8848| 亚洲一区国产视频| 91精品国模一区二区三区| 久久99最新地址| 欧美国产一区二区| 91片黄在线观看| 日本视频免费一区| 久久久久久9999| 91免费看视频| 天堂午夜影视日韩欧美一区二区| 欧美一卡二卡在线| 丁香婷婷综合五月| 亚洲免费观看高清完整版在线| 欧美中文一区二区三区| 久久精品免费看| 国产精品视频看| 在线日韩国产精品| 久久福利资源站| 亚洲欧美在线aaa| 欧美日韩国产经典色站一区二区三区| 美女视频网站久久| 亚洲欧洲无码一区二区三区| 欧洲另类一二三四区| 麻豆免费精品视频| 最新日韩在线视频| 91精品免费在线| 99久久99久久综合| 久久精品国产在热久久| 国产精品每日更新| 欧美精品第1页| 不卡的av在线播放| 美女视频黄频大全不卡视频在线播放 | 韩国女主播成人在线| 国产精品久久久久天堂| 欧美美女bb生活片| 国产91对白在线观看九色| 亚洲一区二区三区国产| 欧美国产一区二区| 91精品国产综合久久国产大片| 高清不卡在线观看| 美洲天堂一区二卡三卡四卡视频 | 欧美激情在线一区二区| 色综合久久中文字幕综合网| 亚洲一区二区在线视频| 欧美高清在线一区二区| 日韩亚洲欧美一区| 欧美亚洲日本一区| 99久久精品免费看| 激情丁香综合五月| 日韩精品五月天| 亚洲永久免费av| 国产精品免费视频一区| 精品国产一区二区亚洲人成毛片| av一二三不卡影片| 国产成人福利片| 国产精品1区2区3区| 麻豆精品视频在线观看免费| 亚洲日本在线a| 国产日产欧美一区二区视频| 精品精品国产高清一毛片一天堂| 欧美丝袜自拍制服另类| 91丨国产丨九色丨pron| 97超碰欧美中文字幕| 99精品在线免费| 成人毛片在线观看| k8久久久一区二区三区| 懂色av中文字幕一区二区三区| 国产成人在线视频网址| 国产jizzjizz一区二区| 国产一区二区伦理片| 国产盗摄视频一区二区三区| 国产精品综合二区| 成人性色生活片免费看爆迷你毛片| 久草这里只有精品视频| 韩国三级在线一区| 国产大片一区二区| 成人听书哪个软件好| 成人污污视频在线观看| 91在线视频播放| 欧美日韩中字一区| 91精品国产91综合久久蜜臀| 91精品婷婷国产综合久久性色| 91麻豆精品91久久久久久清纯 | 国产精品家庭影院| 亚洲欧美日韩在线播放| 一区二区三区四区不卡视频 | 久国产精品韩国三级视频| 久久国产精品免费| 成人午夜在线免费| 色又黄又爽网站www久久| 欧美在线视频全部完| 日韩一区二区中文字幕| 久久久久久亚洲综合影院红桃 | 欧美电视剧在线观看完整版| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美国产综合色视频| 亚洲一二三级电影| 美女免费视频一区| 成人av先锋影音| 777奇米四色成人影色区| 久久婷婷综合激情| 亚洲丝袜另类动漫二区| 日韩综合一区二区| 国产精品一级二级三级| 在线精品视频一区二区| 精品少妇一区二区三区日产乱码| 国产精品美女久久久久aⅴ| 亚洲国产日韩一区二区| 国产精品一区二区在线观看不卡 | 国产精品一二三在| 日本高清视频一区二区| 日韩一区二区三区三四区视频在线观看 | 欧美激情自拍偷拍| 五月天激情综合网| 成人免费不卡视频| 日韩一区二区精品在线观看| 欧美激情一区在线观看| 蜜臀av一级做a爰片久久| aaa欧美大片| 国产日韩欧美亚洲| 久久草av在线|