Checking collisions on every move will kill performance later or sooner.
Usally the collsision test cycle looks like this:
Code:
for i1 := 0 to ItemsCount-1 do for i2 := i1+1 to ItemsCount-1 do CheckCollision(i1, i2);
CheckCollision(i1, i2) checks for collision between item with index i1 and item with index i2.

Or you can use an engine which supports collision checking and may be even response.