122 _Bool validate_move(Board board, Move *move) { |
122 _Bool validate_move(Board board, Move *move) { |
123 _Bool result; |
123 _Bool result; |
124 |
124 |
125 /* validate indices (don't trust opponent) */ |
125 /* validate indices (don't trust opponent) */ |
126 if (!chkidx(move)) { |
126 if (!chkidx(move)) { |
|
127 return 0; |
|
128 } |
|
129 |
|
130 /* must move */ |
|
131 if (move->fromfile == move->tofile && move->fromrow == move->torow) { |
127 return 0; |
132 return 0; |
128 } |
133 } |
129 |
134 |
130 /* does piece exist */ |
135 /* does piece exist */ |
131 result = msrc(board, move) == move->piece; |
136 result = msrc(board, move) == move->piece; |