C++ の基礎〜応用をまとめて学べる教材プロジェクト
CLI版(コンソール)と GUI版(raylib)を使って、
C++・アルゴリズム・CMake・raylib・GitHub を全部まとめて学べる学習向けプロジェクトです。
- 2次元配列(9×9 の Board 構造)
- 行・列・3×3 ブロックのチェック
- 再帰(バックトラック)によるソルバー
- 解が1つのみの問題生成アルゴリズム
- CLI(標準入出力)
- GUI(raylib)による描画・入力処理
- CMake の基本
- GitHub でのソース管理
- クロスプラットフォーム構成
sudoku-cpp-practice/
├─ README.md
├─ LICENSE
├─ cli/
│ ├─ CMakeLists.txt
│ └─ src/main.cpp
└─ gui-raylib/
├─ CMakeLists.txt
└─ src/main.cpp
- Visual Studio 2022 Build Tools
- CMake
- Git
brew install cmake git
xcode-select --install
sudo apt update
sudo apt install cmake g++ git build-essential
cd cli
mkdir build
cd build
cmake ..
cmake --build .
実行:
- Windows →
.\Debug\cli.exe - macOS/Linux →
./cli
- 新しいパズル生成
- Enterで解答表示
- コード内に超丁寧コメント
<<<<<<< HEAD
=======
.\Debug\sudoku.exe
./sudoku
※ raylib は CMake が自動でダウンロード → ビルドします。
>>>>>>> 9613f4c75d7e1f59593d3e4dc3cca3f3249c9ec7
cd gui-raylib
mkdir build
cd build
cmake ..
cmake --build .実行:
- Windows →
.\Debug\sudoku_gui.exe - macOS/Linux →
./sudoku_gui
<<<<<<< HEAD
- クリックでマス選択
- 1〜9:数字入力(テンキー対応)
- 0 / Del:消す
- H:間違いを赤く表示(ヒント)
- N:新規問題
- S:解答を全部表示
FindEmpty(): 空きマス探索IsValid(): 置けるか判定Solve(): 再帰バックトラックSolveCount(): 解の数チェックGeneratePuzzle(): 一意解の問題生成 =======
.\Debug\sudoku.exe
./sudoku
9613f4c75d7e1f59593d3e4dc3cca3f3249c9ec7
- CLI版 main.cpp を読む
- Solve() を理解
- GeneratePuzzle() を理解
- GUI版 main.cpp を読む
- 入力処理・描画処理を見る
- 機能追加に挑戦
MIT License
- C++ を楽しく学ぶ
- ゲームを作る流れを学ぶ
- GUI と CLI を理解する
- アルゴリズムに触れる
- GitHub の使い方を学ぶ
改善や提案は Issue / Pull Request まで!