在象棋中,将帅只能在九宫格内走,不能走斜线,并且将帅不能见面。
问题是输出将、帅的所有合法位置。并且要求代码中只能使用一个变量。
输出合法位置并不困难,遍历一遍,将将帅不见面的情况下的位置输出就好。主要是只使用一个变量,这个是需要考虑的所在。
书中详细的给出了一种解决方式。大体是定义一个变量,变量长度为一个字节。由于将或帅仅在9个点的位置上,所以将一个字节分成前后4位,4位最大可以表示16个点,表示9个点没有问题。
用php来实现的话,实际不用这么麻烦,一个数组变量就可以解决了~
function jiangshuai() {
$i = array();
for($i[0] = 1;$i[0] <= 9; $i[0] = $i[0] + 1) {
echo "\r\n
";
for($i[1] = 1; $i[1] <= 9; $i[1] = $i[1] + 1) {
if($i[0]%3 != $i[1]%3) {
echo $i[0];
echo ' ';
echo $i[1];
echo ' | ';
}
}
}
}