/MasterNongMind

🔮 Mastermind puzzle solver using Genetic Algorithm and Grid Search for optimization

Primary LanguageCMIT LicenseMIT

🔮 Fine Tuning Genetic Algorithm for Solving Mastermind (MasterNongMind)

👀 Creating a Mastermind puzzle guessing algorithm using permutations and handcrafted rule-based solutions.

ℹ️ About this Project

  • 📚 Project Background: "MasterNongMind" is "a one of many projects" we did for the course CPE231 Algorithm in the Computer Engineering at ⚙️🐜KMUTT, where students apply algorithmic knowledge to solve the Mastermind puzzle.
  • 🎯 Project Goal: The primary objective of "MasterNongMind" is to design and implement an efficient algorithm for solving the classic Mastermind puzzle.
  • 💡 Mastermind is a game of logic and deduction where one player creates a secret code, and the other player, in this case, the algorithm, attempts to guess the code within a limited number of turns. The aim is to create a robust, rule-based solution that can effectively deduce the secret code by making logical guesses.
  • 📊 Performance Evaluation: Success will be measured by the number of turns needed to guess the code, guess accuracy, and algorithm efficiency.
  • 📄 References & Acknowledgement Our work is based on the paper by Berghman, L., Goossens, D., & Leus, R. (2009), titled "Efficient solutions for Mastermind using genetic algorithms" (Computers & Operations Research, 36(6), 1880-1885). This paper provided us with valuable insights into designing the genetic algorithm to work with Mastermind. Another honorable mention is the mastermind-genetic-algorithm repository, which provides guidelines for implementing the genetic algorithm in Python.

⚙️ Technical Concept

  • 🧑🏻‍💻 Implemented in C programming
  • 🤖 Algorithms:
    • Permutations (Bruteforce/Heap) to generate every possible code combination.
    • Genetic Algorithms to enhance decision-making abilities based on all previous feedback.

🧑🏻‍💻 Members

ID Name GitHub
65070501001 Kantapong Vongpanich OnlyJust3rd
65070501017 Chotanansub Sophaken ChotanansubSoph
65070501044 Phuris Pimpat MiikyMan
65070501073 Chaiyapat Meeying ChaiyapatOam
65070501082 Pattaranun Ayaprasitphol efmuruk
65070501088 Sopida Kaewjongkool