  In this paper we introduce novel algorithmic strategies for effciently
playing two-player games in which the players have different or identical
player roles. In the case of identical roles, the players compete for the same
objective (that of winning the game). The case with different player roles
assumes that one of the players asks questions in order to identify a secret
pattern and the other one answers them. The purpose of the first player is to
ask as few questions as possible (or that the questions and their number
satisfy some previously known constraints) and the purpose of the secret player
is to answer the questions in a way that will maximize the number of questions
asked by the first player (or in a way which forces the first player to break
the constraints of the game). We consider both previously known games (or
extensions of theirs) and new types of games, introduced in this paper.
