Games are an excellent tool for undergraduate research in artificial intelligence because they typically have clear objectives, a limited action space, and well-defined constraints. Nonetheless, games involving chance and imperfect information offer unique challenges for optimizing gameplay. In this paper, we analyze one such card game, gin rummy, and propose an artificial intelligence player based on empirically driven strategies. Our approach separates gameplay into three disjoint policies for drawing, discarding, and knocking. On each turn, decisions are influenced by offensive considerations as well as defensive moves. Tournament-style simulations enable us to determine statistically which combination of policies achieves the highest win rate. Our resulting player, dubbed Heisenbot, is competitive against strong baseline strategies.