ナンプレ大好きな水曜日の青猫です🐾
なんとクソなタイトルなんでしょう(笑)。でもその通りです。
Pythonプログラム素人の私が、ナンプレ(= 数独)のアプリを創るというプロジェクトをスタートしました。
どのくらいプログラム素人かというと、この「Python」が読めなかったくらいです(爆)。
でも、ご安心を。私には頼もしいスタッフがそばにいます。それは…
ChatGPT。
ということで、今日から始まる一連の記事に、プロジェクトの足跡を記します。
準備するもの
あなたが筆者 水曜日の青猫と同じことをやろうとする場合、準備してもらいたいものは次の2つです。
- Pythonを動かす環境
- Pythonista 3
- ChatGPT
- 4o(Plus)
★ChatGPTのことは、以下、「GPT」って呼び捨てにします。
プロジェクトの方向性
2つのフェーズで進めます。以下、数え切れないくらいの「いろいろなやりとり」の結果として、GPTからのオススメです。
フェーズ1
ナンプレの難しさを何段階のレベルにわけて、そのレベル毎に、ナンプレの「問題と解答」を出力するプログラムをつくる。
フェーズ1-1
- 難易度で6レベルの「問題と解答」を作り出すプログラム
- 解答は1つだけとする(複数解答があるものは除外)
- レベルは「初級」「中級」「上級」「難問」「達人」「絶望」とする
- 暫定的にそれぞれのレベルは問題の空白数で定義する
- 初級 空白数 44〜47個
- 中級 空白数 48〜51個
- 上級 空白数 52〜54個
- 難問 空白数 55〜56個
- 達人 空白数 57〜58個
- 絶望 空白数 59〜60個
フェーズ1-2
フェーズ1-1のプログラムに、以下の解法を組み入れる。
- X-Wing
- Swordfish
- Jellyfish
- Skyscraper
- XY-Wing
- XYZ-Wing
フェーズ2
フェーズ1で作ったプログラムを核にして、iPadやiPhoneで動くプログラムをつくる。
フェーズ2-1
フェーズ1で作った機能を核として、iPadで動くナンプレのベースアプリをつくる。
- レベル選択ができる
- メモ記録ができる
- 気に入った問題を保存できる(保存数は上限を決める)
- エラー回数で終了をカスタマイズできる
- 時間設定をしてタイムアタックができる
フェーズ2-2
フェーズ2-1で作ったベースアプリの見た目等を整える
プログラムはある程度まで公開
プログラムについては、フェーズ2-1の途中までは、以下のライセンスで公開します。
ライセンスについて
このブログまたは、今後動画で公開予定のすべてのコードは、特に明記がない限り、CC0 1.0 Universal (Public Domain Dedication) に基づき公開しています。ただし、明記しますけどね🐾
だから、自由に使用、改変、再配布可能です。ライセンス表記や帰属表示も不要です。詳細は CC0 1.0 Universal をご確認ください。
フェーズ1-1のプログラム公開
以下、フェーズ1-1のプログラムを公開します。
プログラム1行目は、CC0 1.0 Universal (Public Domain Dedication)の注記です。
なお、本サイトは、コピー&右クリック禁止となっています。
なので、下記のPythonプログラムは直接コピーできません。
末尾右にある「view raw」をクリックすると、GitHub Gistという安全にプログラムコードなどを公開するツールに飛びます。そこから、コードをコピペして使ってください。
なお、プログラムについての質問にはお答えできません。
なぜなら、筆者 水曜日の青猫が直接コードを書いているのではないので、答えられないからです。
もし、プログラムコードに疑問があったら、それは、あなたが直接、あなたのGPTに聞いてください。
_/_/_/
冒頭のほうで推奨としてあげたPythonを動かす環境で、プログラム実行をして、楽しんでくださいね。
ところで、このコードは24版です。1版につき、CPTと数回やり取り&実行してフィードバックをやっていますので、24版をつくりあげるまで、100くらい、かなり詳細なやりとりをしました。
結果、Python素人としては、GPTを使ってまあまあのベースアプリができました。
ナンプレ0024.pyの課題
問題作成ルーチンについては、処理速度をあげる工夫(実際に工夫をするのはGPT)をしました。
今後、特殊な解法を組み入れて問題をつくるためにも、基礎となる処理ルーチンの速度アップを追求します。
それ以上に、現段階ではX-Wiing等を組み入れていません。なので、最強レベル「絶望」であっても、問題が簡単すぎる。つまり、まずは最強レベル「絶望」をしっかり難しいものにする、それが一番の課題です。
さきほど作った、「絶望」レベルの問題を2つ載せます。簡単すぎて笑うしかありません。
まとめ
プログラムど素人の筆者 水曜日の青猫が、Pythonでナンプレアプリを創るプロジェクト。
すでに随分前にスタートしていましたが、フェーズ1-1段階のコードを公開できるくらいになりましたので、「その1」を公開しました。
このプログラムは、CC0 1.0 Universal (Public Domain Dedication) です。
また、質問等にお答えすることはできません。その理由は、さきほど書きました。
コメント