Skip to content

PineWarbler/ConnectFour

Repository files navigation

ConnectFour

A Grove City College Robotics Club project

Project Goals

  • to create a robot that plays Connect Four at a high skill level against a human opponent.
  • Ideally is able to reliably beat its human opponents with minimal algorithm compute time (less than 10s per turn decision).

Milestones

  • 4/19/2022: Our robot beat a human player for the first time (running search depth 4)!

ToDo

  • revise and print piece dispenser design to have a smaller column
  • solve problem of ridged token edges that prevent clean dispensing
  • Get H-bridge stepper motor circuit running with Python code
  • finalize and 3d print column-style piece dispenser
  • 3d print and assemble gantry
  • wire routing
  • Develop code localization and piece color classification method
    • Done. See interpretBoard.py, which uses HSV color thresholding and board localization using 4 ArUco markers on board edges
  • Get RPi camera running
  • Solve problem of RPi slow minimax compute time (see BTCommFunctions.py that uses wireless Python bluetooth sockets to communicate with a more powerful laptop in about 0.2 seconds per query)
    • switching to a different minimax implementation significantly reduced computation time (see better_minimax.py)

Data Dashboard Display

Intended for display at the annual organization fair at GCC in lieu of a functioning piece placement system. Most importantly, it allows booth visitors to clearly see the column choice chosen by the minimax algorithm when playing a game at the booth. See dashboard.py and the modified main program Below is a screenshot of the data dashboard: data_dashboard_screenshot

System Block Diagram

System Block Diagram

The GNU General Public License v3.0 Copyright © 2022 Peter Reynolds and the Grove City Robotics Club

About

A smart robot that plays a physical game of Connect Four

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages