Computing Nash Equilibria in Non-Cooperative Games: an agent-based approach