diff options
| -rw-r--r-- | chess.c | 2 | ||||
| -rw-r--r-- | vector.c | 10 |
2 files changed, 8 insertions, 4 deletions
@@ -236,7 +236,7 @@ vectorp_t get_moves_final(int** board, vector_t position, piece_t piece) { //remove the piece from where it was tempBoard[position.mx][position.my] = 0; if(is_in_check(tempBoard, color)) { - invalidMoves[invalidMovesCount]; + invalidMoves[invalidMovesCount] = i; invalidMovesCount++; } free(tempBoard); @@ -26,13 +26,17 @@ vectorp_t remove_vectors(vectorp_t vectorp, int* indexes, int indexCount) { vector_t* vectors = malloc((vectorp.length - indexCount) * sizeof(vector_t)); int correctedIndex = 0; for(int i = 0; i < vectorp.length - indexCount; i++) { + int toRemove = 0; for(int j = 0; j < indexCount; j++) { if(i == indexes[j]) { - continue; + toRemove = 1; + break; } } - vectors[correctedIndex] = vectorp.vectors[i]; - correctedIndex++; + if(!toRemove) { + vectors[correctedIndex] = vectorp.vectors[i]; + correctedIndex++; + } } return init_vectorp(vectors, vectorp.length - indexCount); } |
