Просмотр файла move.php

Размер файла: 1.7Kb
<? /* these functions deal specifically with moving a piece */
	function doMove()
	{
		global $board, $isPromoting, $doUndo, $history, $numMoves;

		/* old PHP versions don't have _POST, _GET and _SESSION as auto_globals */
		if (!minimum_version("4.1.0"))
			global $_POST, $_GET, $_SESSION;
		
		/* if moving en-passant */
		/* (ie: if pawn moves diagonally without replacing anything) */
		if ((($board[$_POST['fromRow']][$_POST['fromCol']] & COLOR_MASK) == PAWN) && ($_POST['toCol'] != $_POST['fromCol']) && ($board[$_POST['toRow']][$_POST['toCol']] == 0))
			/* delete eaten pawn */
			$board[$_POST['fromRow']][$_POST['toCol']] = 0;
		
		/* move piece to destination, replacing whatever's there */
		$board[$_POST['toRow']][$_POST['toCol']] = $board[$_POST['fromRow']][$_POST['fromCol']];

		/* delete piece from old position */
		$board[$_POST['fromRow']][$_POST['fromCol']] = 0;

		/* if not Undoing, but castling */
		if (($doUndo != "yes") && (($board[$_POST['toRow']][$_POST['toCol']] & COLOR_MASK) == KING) && (($_POST['toCol'] - $_POST['fromCol']) == 2))
		{
			/* castling to the right, move the right rook to the left side of the king */
			$board[$_POST['toRow']][5] = $board[$_POST['toRow']][7];

			/* delete rook from original position */
			$board[$_POST['toRow']][7] = 0;
		}
		elseif (($doUndo != "yes") && (($board[$_POST['toRow']][$_POST['toCol']] & COLOR_MASK) == KING) && (($_POST['fromCol'] - $_POST['toCol']) == 2))
		{
			/* castling to the left, move the left rook to the right side of the king */
			$board[$_POST['toRow']][3] = $board[$_POST['toRow']][0];

			/* delete rook from original position */
			$board[$_POST['toRow']][0] = 0;
		}

		return true;
	}
?>