clean code
Check手势还有点问题。别的逻辑都貌似正确。还需要讨论一下。