An aspect of game theory that has received very little attention to data is how to take advantage of an opponent``s nonoptimal play. Intuitively an algorithm based on the knowledge of the opponent``s actual play or at least a good estimate of his strategy should yield a better performance index than conventional algorithm which assumes that the opponent plays optimally. This study presents an algorithm for a player to improve his performance by adapting optimally over his nonoptimally playing opponent in discrete-time differential games. The algorithm first estimates the opponent``s actual strategies and then constructs an adaptive strategy for the player. The adaptive strategy in periodically updated according to the opponent``s behavior using the dynamic programming technique for linear system and the neighboring optimal solution technique for nonlinear system. The algorithm is applied to both zero-sum and nonzero-sum games and an example is given which demonstrates the superiority of this algorithm over the conventional one which assumes that the opponent plays optimally. The results of this study can be used as an analytical tool for many pursuit-evasion situations such as fighter vs. fighter combat or ship vs. ship battle.