SAT(Boolean Satisfiability) solver와 Tkinter GUI를 사용하여 Flow Free 퍼즐을 푸는 파이썬 프로그램입니다.
- DATE: 2024-02-18
- SAT solver 활용:
pycosat
라이브러리를 사용하여 Flow Free 퍼즐을 SAT 문제로 변환하고 해결합니다. - Tkinter GUI: 사용자 친화적인 그래픽 인터페이스를 제공하여 퍼즐을 시각적으로 입력하고 해결 과정을 확인할 수 있습니다.
- 자동 퍼즐 해결: 퍼즐을 입력하면 SAT 솔버를 통해 자동으로 해를 찾아 Canvas에 시각적으로 표시합니다.
- 다양한 설정 옵션: 셀 크기, 선 굵기 등 GUI 설정을 사용자가 조절할 수 있습니다.
Program | URL | 필수여부 | 비고 |
---|---|---|---|
Python |
Download | 필수 | ◼ Python Script 동작, 파이썬 3.9.0 버전 또는 그 이상 권장 |
반디집 |
Download | 필수 | ◼ (* 다른 압축 프로그램 사용 가능) |
-
Python 을 설치합니다.
[ ※ 주의 ] Python 설치 시 Add python.exe to PATH 에 체크 후 Install Now 클릭
(📌 미처 누르지 못했다면 설치 파일 다시 실행 또는 제거 후 재 설치)
(선택) 설치 후 Disable path length limit 기능을 사용할 수 있도록 클릭
-
(필수) pycosat Package 설치
(* 두 코드 중 하나 선택)
pip install pycosat
or
python -m pip install pycosat
[ ※ 주의 ] 만약 위 명령어 사용 중 ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 액세스가 거부되었습니다: (생략) Consider using the--user
option or check the permissions. 과 같은 오류가 나왔다면 끝에--user
를 붙여서 입력
(* 권한 오류 발생시 두 코드 중 하나 선택)
pip install pycosat --user
or
python -m pip install pycosat --user
Flow Free Solver GUI.py
를 실행합니다.
- Grid Size: 텍스트 상자에 원하는 Grid 크기를 입력하고 "Create Grid" 버튼을 클릭하여 퍼즐 입력 Grid를 생성합니다.
- Cell Size & Line Size: "Size Options" Frame에서 Cell 크기와 Line 굵기를 조절하고 "Apply Cell Size", "Apply Line Size" 버튼을 클릭하여 적용합니다.
- Color Palette: "Color Options" Frame에서 원하는 색상을 선택합니다.
- 퍼즐 입력: Canvas에서 색상을 지정할 Cell을 클릭하여 시작점과 끝점을 표시합니다. 같은 색상을 다시 클릭하면 제거됩니다.
- Solve Puzzle: "Display" Frame의 "Solve Puzzle" 버튼을 클릭하여 퍼즐을 해결합니다. Canvas에 해답이 시각적으로 표시됩니다.
이 Flow Free Solver GUI는 다음 자료를 기반으로 제작되었습니다.
이 GUI 프로그램의 기본적인 로직은 mzucker/flow_solver
프로젝트에서 가져왔으며, Tkinter GUI 및 사용자 인터페이스는 본 프로젝트에서 새롭게 구현되었습니다.
이 프로젝트는 MIT License에 따라 라이선스가 부여됩니다.