It would be really nice if you could give a little description of what
you thought the code was suppose to do as well as what it's really
doing. Most importantly you are using a number of variables which
are not obvious.
What is 'c' and 'dCol'
I assume that 'sq' is a two dimensional array with 'r' and 'c' acting
as indexes but it's unclear what type the array is and what it looks
like.
On Fri, May 9, 2008 at 10:24 AM, Kenneth Chung
<ken...@ho...> wrote:
>
> are there any errors in this code as it is not working.
After trying to decode your code:
Reference Square:
1 2 3
4 5 6
7 8 9
if (
c> dCol &&
(
(sq[r][c - 1] != '#' && sq[r][c - 1] != ' ') || // Square 4 Not
Equal to # or ' '
(sq[r + 1][c] != '#' && sq[r + 1][c] != ' ') || // Square 8 Not
Equal to # or ' '
(sq[r][c + 1] != '#' && sq[r][c + 1] != ' ') || // Square 6 Not
Equal to # or ' '
(sq[r - 1][c] != '#' && sq[r - 1][c] != ' ') // Square 2 Not
Equal to # or ' '
)
&&
sq[r][c - 1] <= sq[r + 1][c] && // Square 4 <= Square 8
sq[r][c - 1] <= sq[r][c + 1] && // Square 4 <= Square 6
sq[r][c - 1] <= sq[r - 1][c] // Square 4 <= Square 2
)
spmw1(r, c - 1);
else
if
(c < dCol &&
(
(sq[r][c + 1] != '#' && sq[r][c + 1] != ' ') || // Square 6 Not
Equal to # or ' '
(sq[r - 1][c] != '#' && sq[r - 1][c] != ' ') || // Square 2 Not
Equal to # or ' '
(sq[r][c - 1] != '#' && sq[r][c - 1] != ' ') || // Square 4 Not
Equal to # or ' '
(sq[r + 1][c] != '#' && sq[r + 1][c] != ' ') // Square 8 Not
Equal to # or ' '
) &&
sq[r][c + 1] <= sq[r - 1][c] && // Square 6 <= Square 2
sq[r][c + 1] <= sq[r][c - 1] && // Square 6 <= Square 4
sq[r][c + 1] <= sq[r + 1][c] // Square 6 <= Square 8
)
spmw1(r, c + 1);
else
if
...... It looks like a lot of your tests are duplicates, so you
might want to nest some of your tests. For example...
If (( sq[r-1][c] != '#' && sq[r-1][c] != ' ') || (sq[r][c - 1] != '#'
&& sq[r][c - 1] != ' ') ||
(sq[r][c + 1] != '#' && sq[r][c + 1] != ' ') ||(sq[r + 1][c] !=
'#' && sq[r + 1][c] != ' ') )
{
if ( c < dCol ) && sq[r][c + 1] <= sq[r - 1][c] &&sq[r][c + 1] <=
sq[r][c - 1] &&
sq[r][c + 1] <= sq[r + 1][c] ) spmw1(r, c + 1);
else
if ( c> dCol ) && sq[r][c - 1] <= sq[r - 1][c] && sq[r][c - 1] <=
sq[r][c + 1] &&
sq[r][c - 1] <= sq[r + 1][c] ) spmw1(r, c - 1)
}
But I still can't even tell you what your code is trying to do.
-Robert
|