ただいま、11/30までの予定でお引越し中(ここが新居です、詳細はプロフィールにて)

ナンプレアプリをPython初心者がAIで創るプロジェクト、その2🐾〜X-Wingなどを組み込む

  • URLをコピーしました!

ナンプレ大好きな水曜日の青猫です🐾

まずは、こちらの記事を読んでいただけると嬉しいです。

この上に載せた記事で、経緯とか、必要ツールとか書いてありますので、是非、読んでいただきたいな🐾

ところで、「その1」では、フェーズ1-1のPythonプログラムコードを載せました。今回、この「その2」でもプログラムコードを載せています。

これらプログラムのライセンスは、コレ↓です。

このブログまたは動画で公開しているすべてのコードは、特に明記がない限り、CC0 1.0 Universal (Public Domain Dedication) に基づき公開しています。

自由に使用、改変、再配布可能です。ライセンス表記や帰属表示も不要です。詳細は CC0 1.0 Universal をご確認ください。

引用元:ナンプレアプリをPython初心者がAIで創るプロジェクト、その1🐾

それから、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) です。

また、質問等にお答えすることはできません。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

水曜日の青猫です。一応、猫です(=^・^=)
サイト訪問に感謝します。
普段、山の徘徊ばかりしています。
百名山なんてとんでもない。
とっても低い、地元の里山ばかり。
そして、ときどき記事を書く 🐾

コメント

コメントする

CAPTCHA

目次