This looks very weird though:
for(int i=0; i<2 ;i++)
positions_check[i] = digitalRead(positions_check [i]); //reads the current status of position sensors
Is position_check the pins numbers? After you go through the loop once they will be either 0 or 1.