ナンプレ大好きな水曜日の青猫です🐾
まずは、こちらの記事を読んでいただけると嬉しいです。
この上に載せた記事で、経緯とか、必要ツールとか書いてありますので、是非、読んでいただきたいな🐾
ところで、「その1」では、フェーズ1-1のPythonプログラムコードを載せました。今回、この「その2」でもプログラムコードを載せています。
これらプログラムのライセンスは、コレ↓です。
このブログまたは動画で公開しているすべてのコードは、特に明記がない限り、CC0 1.0 Universal (Public Domain Dedication) に基づき公開しています。
引用元:ナンプレアプリをPython初心者がAIで創るプロジェクト、その1🐾
自由に使用、改変、再配布可能です。ライセンス表記や帰属表示も不要です。詳細は CC0 1.0 Universal をご確認ください。
それから、Pythonプログラムは、ChatGPT(以下、GPTと書きます)といろいろ打ち合わせしながら、コードを組み立てるのはGPTです。筆者 水曜日の青猫はプログラムコード1行も1文字も書いてません。
それでも、アイデア出しや、修正のヒント出しその他もろもろ、プログラム創りには十分に貢献しています(…と思う)。
さて、今回のプロジェクトの記録「その2」では、「その1」のベースプログラム(ナンプレ0024.py)に、次のナンプレの3つの解法を組み入れました。
- X-Wing
- Swordfish
- Jellyfish
の3つです。
準備するもの
- Pythonを動かす環境
- 筆者の場合は、これ。Pythonista 3
- Pythonコードを創ってくれる仲間
- 筆者の場合は、これ。ChatGPT 4o(Plus)
2つのフェーズで進めます。以下、数え切れないくらいの「いろいろなやりとり」の結果として、GPTからのオススメです。
フェーズ1
「ナンプレアプリをPython初心者がAIで創るプロジェクト」は、大きく「フェーズ1」、「フェーズ2」で進めます。
「フェーズ1」は、6段階のレベルで、ナンプレの問題と解答を生成するプログラムです。
そして、「フェーズ2」では、「フェーズ1」で創った核を利用して、iPadやiPhoneのアプリを創ります。
_/_/_/
さて、「フェーズ1」ですが、これも2つに分けて作業しました。「フェーズ1-1」と「フェーズ1-2」です。
フェーズ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-2」です。
「フェーズ1-1」で創った「ベースとなるプログラム」(これは「その1」でコードを公表しました)に対して、上に掲げた6つの機能を付加します。
具体的には、GPTと何回もやりとりして、次のように決めました。
- 6つのレベルのうち、「初級」「中級」「上級」には、前述の解法を組み込まない。
- 6つのレベルのうち、「難問」「達人」「絶望」に、前述の解法を組み込む。
- 「難問」には、アトランダムに1つの解法を組み込む。
- 「達人」には、アトランダムに2つの解法を組み込む。
- 「絶望」には、アトランダムに3つの解法を組み込む。
- プログラムづくりとしては、2段階で考える。
- まずは、6つの解法のうち、X-Wing、Swordfish、Jellyfishの3つだけを組み込んで、それを「難問」「達人」「絶望」に適用する。
- これの安定バージョンができたら、アトランダムに選ぶ解法として、Skyscraper、XY-Wing、XYZ-Wingを追加で組み込み、「難問」「達人」「絶望」に適用する。
今回創ったのは、「X-Wing、Swordfish、Jellyfishの3つ組み込みバージョン」です。
細かくフェーズを切ると、今回公開するコードは、「フェーズ1-2-1」ですね。
フェーズ1-2-1のプログラム公開
以下、「フェーズ1-2-1」のプログラムを公開します。
プログラム1行目は、CC0 1.0 Universal (Public Domain Dedication)の注記です。
なお、本サイトは、コピー&右クリック禁止となっています。
なので、下記のPythonプログラムは直接コピーできません。
末尾右にある「view raw」をクリックすると、GitHub Gistに飛びます。そこからコードをコピペして使ってください。GitHub Gistは、コードなどを安全に公開するWebサービスです。
なお、プログラムについての質問にはお答えできません。
冒頭のほうで推奨としてあげたPythonを動かす環境で、プログラム実行をしてください。
ナンプレ0028.pyの課題
次の課題は、残り3つの解法、Skyscraper、XY-Wing、XYZ-Wingを組み入れることです。
「絶望」レベルの問題を2つ載せます。プログラム「ナンプレ0024,py」で創った問題は簡単すぎて笑ってしまいました。しかし、今回、3つの解法を組み込んだ問題は、難しすぎて泣くしかありません。今のところ、筆者 水曜日の青猫のナンプレ実力では、解けません、お手上げ状態です。さすが、「絶望」レベルです・爆。
まとめ
プログラムど素人の筆者 水曜日の青猫が、Pythonでナンプレアプリを創るプロジェクト。
フェーズ1-2-1のコードを公開しました。「その2」です。
このプログラムは、CC0 1.0 Universal (Public Domain Dedication) です。
また、質問等にお答えすることはできません。
コメント