In programming arrays are accessed by integers with the first item in the array being referenced by a 0.
    Move[0, 1, 2, 3, 4, 5, 6, ...n-1]
Therefore, to get the first move you must access the 0 element of the array, and to get the second you must access the 1 element. This task can be tedious in a game with many arrays. Therefore, the elements of the array should correspond to something in the game...a count. The array of moves contains elements irrespective of whose moving. The same holds for the capturing moves array. However, sometimes we may need to know how many moves white has made and how many moves black has made. We therefore must keep track of these different types of counts.
    1. absolute move count
    2. white move count
    3. black move count
Counting is so critical in the chess game that I've created a simple class to handle this topic itself. I've called this class the counter and it has simple functions for keeping track of the position in the move arrays. It can increment certain counters, decrement them, reset them, update them. Further more, when a counter is passed into a fuction for another object, it can contain all the information about the game the amount of moves made.