Il est inutile d’initialiser les variables, elles valent toutes 0 tant qu’on affecte aucune autre valeur (sauf les variables type array qui valent -1, mais ça n’est pas ton cas ici).
Alors en simplifiant le code de la manière suivante (la variable NumPos n’est pas initialisée avant), à nouveau aucune position n’est ouverte au démarrage !