在象棋中,将帅只能在九宫格内走,不能走斜线,并且将帅不能见面。

问题是输出将、帅的所有合法位置。并且要求代码中只能使用一个变量。

输出合法位置并不困难,遍历一遍,将将帅不见面的情况下的位置输出就好。主要是只使用一个变量,这个是需要考虑的所在。

书中详细的给出了一种解决方式。大体是定义一个变量,变量长度为一个字节。由于将或帅仅在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<br>";
		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 ' | ';
			}
		}
	}
}

发表评论

邮箱地址不会被公开。 必填项已用*标注