has_moved.m
来自「国际象棋程序,解压到当前目录,在matlab窗口输入chess即可应用」· M 代码 · 共 53 行
M
53 行
function answer = has_moved(from)
% has_moved whether the figure was moved once
% Whether the figure was moved once or whether there was any activity on
% that field.
%
% This function is required to determine whether the castling is still
% possible.
%
% Inputs:
% * from ... whether a figure has moved "from" that field.
% * global history ... the game history
%
% Outputs:
% * answer ... Boolean answer (true if the figure was moved once).
%
% Example
% Assume you like to do the castling. The the kings method |'possible'|
% will call |has_moved([8 8])|.
%
% See also: King, Chess
%
%% Signature
% Author: W.Garn
% E-Mail: wgarn@yahoo.com
% Date: 2006/03/23 12:00:00
%
% Copyright 2006 W.Garn
%
global history
answer = 0;
% white did not move from or to that field!?
k=1;
while ~answer && k<=size(history.white_pos,1)
if sum(history.white_pos{k,1} == from)==2 || ...
sum(history.white_pos{k,2} == from)==2
answer = 1; % has moved
end
k=k+1;
end
if ~answer
% black did not move from or to that field!?
k=1;
while ~answer && k<=size(history.black_pos,1)
if sum(history.black_pos{k,1} == from)==2 || ...
sum(history.black_pos{k,2} == from)==2
answer = 1; % has moved
end
k=k+1;
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?