diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2022-12-07 17:33:21 -0800 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2022-12-07 17:33:21 -0800 |
| commit | f501b24b8886605949cd9b7880b8e4ce8e866e9d (patch) | |
| tree | d9ba24521a8988592b062e080d0dda93d9a21e81 | |
| parent | c57fdac8fb91a29205bda4a8d8a6f91f4c1ec172 (diff) | |
fixed a bug in the remove_vectors function
| -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); } |
