Partida, Ethan2022-04-262022-04-262022https://hdl.handle.net/11299/227132Faculty advisor: James MoenThis project created a program to play the card game cribbage. Previous work on cribbage has focused on the discard phase of the game, using only a basic algorithm for the play phase. However, determining a hand’s potential performance in the play phase affects the optimal choice in the discard phase of the game. By ignoring this effect, current cribbage algorithms make un-optimal choices. We seek to alleviate this by creating an efficient and intelligent algorithm for the discard phase of cribbage. We explored two approaches to this algorithm, a reinforcement learning algorithm and a minimax algorithm. Due to the randomness of the play phase and our lack of computing power, we were not able to successfully train the reinforcement learning algorithm. By specifically tuning the minimax algorithm to suit the game of cribbage, we created an efficient algorithm which consistently out-preformed the naive greedy algorithm. We also introduce a variety of new heuristics to further tune the minimax algorithm for the play phase of cribbage.enDepartment of Computer Science and EngineeringCollege of Science and EngineeringPlaying Cribbage with Reinforcement Learning and MinimaxReport