This project aims to develop AI based agents for playing the popular word association game Codenames[https://codenamesgame.com/], by Vlaada Chvatil.
Game Overview Codenames is played with a 5x5 grid of cards. Each card contains one word, which is face up for all players to see. In this game, two teams have to communicate which words on the board are the codenames of their own team's agents. One player from each team, called the codemaster, knows which cards are their own teams agents, which cards belong to the opposing team, which cards are innocent bystanders (which belong to neither team) and which card is the assasin (which instantly makes any team that chooses that card lose). Each turn, the codemaster gives a clue consisting of one word and one number (e.g. winter, 3). This clue communicates that there are X words that are codenames of their own team's agents (on the cards on the board) that are related to the word that was said, where X is the number that was said (e.g. 3 words on the board related to winter that belong to their team). The rest of their team, who does not know anything about the cards other than the words that are on them, must pick which words they think the codemaster is cluing to, without picking any words that do not belong to their team. If a team picks a card that does not belong to their team, their turn instantly ends. The first team to correctly select all of the cards representing their agents wins.
AI agents This repository aims to leverage recent advances in natural language processing (NLP) to create AI models that can effectively play as codemasters in codenames. It aims to model how people select words that are related to as many of their own team's words as possible, without accidentally clueing towards their opponent's words, innocent bystanders, or the assasin.