MoonWolf(むーんうるふ)です
今回のテーマは、023_なでしこ です。
「なでしこ」とは、日本語のプロうグラム環境です。
※私が扱うのはブラウザーで動く「なでしこ3」というものです。
私は、プログラム言語は、本家としてPascalをやっており、
サブとして、Python、JavaScriptなどをやっています。
そのような私が、なでしこに興味を持ってゼロから始めてみたのですが、
大枠として、他のプログラム言語と概念に変わりはないものの、
日本語のプログラム記述には驚きでした。
さらに残念なことに、ChatGPT4のサポートが使えません。
彼に、なでしこプログラムを生成させると100%の確率で
動かないプログラムを生成してきます。
なでしこのホームぺージを見ては、隙間時間に
コツコツと自分で組んでみて動作確認をする毎日。
うーんこのままでは、修得に2年も3年もかかってしまう、、、、
1、MoonWolfがなでしこ学習に対してとった対策
私は、ChatGPT4の課金しています。
これをうまく使いこなせると、物事の効率を加速的に変えることができます。
しかし、ChatGPTは日本語のなでしこは経験がないのか、
あるいは難しいかで、まともなプログラムコードを生成できません。
繰り返し処理、判断処理、これら基本的なこともできないのです。
私がとった対策とは以下:
[1] なでしこ文法の指示書を作成
なでしこのホームページにチュートリアルより、
独自になでしこ文法をまとめた、MoonWolfなでしこ指示書を作成して
プログラム生成前にChatGPT4に学習してもらいます。
するとどうでしょう!
少しだけ、なでしこの文法を守った
プログラムコードを生成するようになってきました。
[2] なでしこ公式の書籍より、他のコツを指示書として作成
【日本語だからスイスイ作れる プログラミング入門教室 】
クジラ飛行机 (著) , 2021/8/24
これが公式のなでしこ3書籍。私は買いました。
中学生でも分かるような詳しい説明が展開されています。
この書籍を読んで、なでしこHPへの記載以外にも発見した内容は
ChatGPT4へのMoonWolf指示書としてまとめました。
するとどうでしょう。
ChatGPT4は、2024年6月現在、なでしこのブログラムの生成は
100%の確率で間違えたコードを生成していきますが、
上記ふたつの指示書を私がテキスト文章で作成して教えたところ
な、な、なんと、ChatGPT4がなでしこプログラムを
0%であったものが、70~80%くらの正しさで生成を
始めました。
エラーが出るたびに、それをChatGPT4に伝えるのと同時に、
私が考える考察を加えていくと、80%から90%くらいの
精度まで、正しい記述でプログラムを生成し始めるようになりました。
2、なでしこ3で、2Dシューティングゲームを作成したい!
最終的にはこういうゲームを「なでしこ3」で作りたいのですよ。
このゲームはLazarus(言語:Pascal)で作成したもの。
Pythonでも同様のゲームを作成に成功しています。
しかし、これを「なでしこ3」で実現するには、相当な距離があります。
基本的な変数の扱い、繰り返し処理、判断処理、関数の使い方、
これらには慣れてきたものの、
リアルタイムで敵が動いた迫力のある2Dシューティングには
まだまだ、道のりは長いです。
画面に線や、円を描くにはどうしたら良いのか?
画面上の物体を、画面をちらつかせずに動かすにはどうしたら良いのか?
どうやって、敵を数学の関数に従って動かすか?

敵の星を描きたい。しかし、最初はこんなものです。
ん?さかな? ちーーーーん。

OK!なんとか、なでしこ3で、星の姿を線で描けました!

OK! X軸、Y軸とグリッドも表示できました!
ChatGPT4とのなでしこ3に関して専門的な会話がつづく。
だんだん作れるようになってきましたよー
現在はここまで開発が進みました。
数学の関数にしたがって、星が移動します。
関数名は画面左下に表示。
ついでに、星の位置する座標も表示しています。
3、がんばれMoonWolf(むーんうるふ)
ゲームとして完成させるには、
・マウスをクリックして弾を撃つビジュアル効果
・弾が移動を終えた時の当たり判定
・スコアロジック
・ゲームオバーロジック
これらが必要となります。
果たしてMoonWolf(むーんうるふ)は
ゼロから始めた「なでしこ3」で
ゲームを完成させることが
できるのでしょうか?