Ko fight plays a very important role in Go. How to get the best profit for all possible situations has not been shown in the past study of ko fight problem, because it has a huge number of possible outcomes. In this thesis, we reconsider the optimal strategies over all the possible situations, which could be happened during the process of the ko fight. We build a flow chart of ko fight for each situation by MiniMax search tree. By comparing the difference of the profits between two subtrees, we then prune the worse branches of the game tree in a bottom-up fashion. Finally, we find the correct decision formulas for all possible situation. Therefore, we can find the best strategy in a ko fight with the consideration of ko threats and valuable moves.