Monte Carlo Tree Search (MCTS) is a state-of-the-art family of algorithms that combine Monte Carlo evaluations with tree search. It is attracting more and more interest due to its great success in the Grand Challenge of computer Go, and it has been proven effective in various other decision-making scenarios. This paper is a survey of the literatures to date, aims to make a comprehensive overview of the background history, basic theory, and applications in various fields of MCTS. We outline variants and policy enhancement techniques that have been proposed, these make MCTS applicable to more kinds of scenarios. Finally we point out that the use of MCTS is still a great challenge in realtime scenarios, most of which have imperfect information.