Two-person games are modeled as specifications in a language with ange
lic and demonic nondeterminism, and methods of program verification an
d transformation are used to reason about games. That a given strategy
is winning can be proved using a variant of the traditional loop corr
ectness rule. Furthermore, an implementation of the winning strategy c
an be derived using equivalence transformations.