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

ナンプレアプリをPython初心者がAIで創るプロジェクト、その1🐾〜ベースプログラムの作成

  • URLをコピーしました!

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

なんとクソなタイトルなんでしょう(笑)。でもその通りです。

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) です。

また、質問等にお答えすることはできません。その理由は、さきほど書きました。

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

この記事を書いた人

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

コメント

コメントする

CAPTCHA

目次