これはMAZEアルゴリズムの一部です。機能に含まれるこのコードの短縮された部分はあまり明確ではありません。私の提案は正しいですか?Cで短縮されたコードの意味(int_wall関数内)
...
#define UP 1
#define RIGHT 2
#define DOWN 4
#define LEFT 8
...
int wall_ahead(int m[MAZE_SIZE][MAZE_SIZE], int x, int y, int dir){
x = (dir == LEFT) ? --x :
(dir == RIGHT) ? ++x : x;
y = (dir == UP) ? --y :
(dir == DOWN) ? ++y : y;
return m[x][y];
}
私の提案は次のとおりです。
if(dir == LEFT){
x -= 1;
if(dir==RIGHT){
x += 1;
} else {
x = x;
}
}
2番目の 'if'の前に' else'を置きます。 – Evert
あなたの実際の質問は何ですか? – Evert
'x - = x'?それは '-x'が意味するものではありません。おそらく 'x - = 1'です。 – Evert