というわけで前回の自己紹介的な雑記でも触れたが、魔法陣を描くことでプログラミングができる言語、というのを思いついた。
とりあえずJavaScriptかUnity辺りでぼちぼち作っていく予定。
でプログラム言語の名前をGrmと命名(現在はGr3に改名)、読み方は「グリム」。
由来としては押井守監督の映画、
の仮題が「GRM」なのと、あとフランス語で魔導書を「グリモワール(Grimoire)」というので、その辺から。
でまあ具体的にどうやって魔法陣でプログラミングするかなんだけど、まず魔法陣は別名「魔法円」とも言う。というか魔法陣って名称でネット検索かけるとなぜか魔方陣(縦横斜めで同じ数にするマス目)がヒットするので面倒くさいんだが。
その魔法「円」に意味を持たせて重ねる、するとそれだけでぐっとプログラムっぽくなる。実際のファンタジー作品の魔法陣もこうやって魔法構築してんかなぁってくらい。
え、意味がわからない?んでは少し具体的に。
これは魔法陣の1例だけど、複雑にからみあってる魔法円、これの一つ一つがプログラムでいうところの、{}で区切られた関数だとすれば、それを組み合わせることでプログラミングができるんじゃね、というのが基本的な考え。
では、実際にどうやって魔法陣言語でプログラミングしていくのか、というのを次回から
ぼちぼち、試行錯誤してる状態だが発表していく。
iPhoneに図を手描きでメモったのを清書していくので時間はかかるがなー
前回の記事
ということで、ちょっとだけ進んだ
Gr3 一部機能オフVer0.996
変更点はわかりやすいですね。
数字部分に前回表で作ったGr3表示用の記号が出るようにしました。
さて実はGr3作成にあたり先送りしてる問題がある
ある部分が動かない場合ソースコードを書き換えてるのだが
その際に同じ処理を何度も手書きで打ってる為無駄にコードが長くなってる
これは変数のスコープ問題だ
内部関数にうまく数値が受け渡しできないので
結局変数外と外で同じソース書いて処理するという無茶な事をしている
動くから良しと放置してたが、これで「カク」ボタン
Gr3へのデータ読み込み機能が意図した通りに動かないので
相変わらず制限かけて使えなくしているのだ
故にGr3がプログラム言語として完成させるためにソース見直しとjavascriptの勉強し直しが必要なんだけど正直面倒くさいなあ
※ランキング参加中
過去の記事
あれからちょっとだけ手を加えて、ホイール機能でもW-ボーネの数字の増減が出来るようにしました。
微修正なのでバージョンはそのまま。
あとちょっとだけ仕様というか癖があって
一度メルセブルグをクリックして枠線を白表示、枠内にカーソルを残して初めて機能します(スクロールする対象がないと値を読み込まないらしく)
さて、ここまで作ったところで。
ボーネに対応するGr3上およびメーレの表示、他のプログラム言語でいう予約語をピックアップしてみました。
今後増やす予定ですが、とりあえずはこのぐらいで。
12星座記号のうち10までを使用、また現状Wボーネの1枠に収まるのが6個なので
6X3=18のうち17までを使い切った感じです。
論理記号枠が一部変数枠に入ったり結構無茶なことしてますが、その辺はまあ浪漫とセンスで。
また個人的には既存プログラム言語の記号の二重打ち
いわゆる==や||や&&が基本許せないタイプなので、そこは星座記号フル活用でこだわりました。
setectが水でcaseが魚とか、羊と牛をbreak、returnに持ってくるとか
色々考えるのが楽しかったです。
さてこれを連想配列使って定義して、Gr3上で読み込ませる事が出来たら。
とりあえず魔法陣描きソフトから卒業して、いよいよプログラムソースを吐き出すプログラム言語の卵の完成です。
何とか春が終わるまでには実際にプログラム言語として書いたものを実行させるまでもっていきたいですねえ。
※ランキング参加中
前回の記事
あれから数日たって、若干進んだようなそうでもないような。
プログラムを組むまではあと一つ足りませんが、そのとっかかりまでは持っていきました。
追加した実装は二つほど。
まずクリックした魔法円をズームして「お豆さん」Bohne(ボーネ)をその上に表示されるように。
メーレの横に表示されるよりこの方がわかりやすい。
Gr3作る前のGrmでも似たような仕様で作ろうとしてましたし。
次にその上部に表示したボーネを選んだ時に表示される画面。
これは「選ぶ」、とか「ダイヤル」を意味するWählen(ウォーレン)を頭に付けた
Wählen‐Bohne 略してW-ボーネと命名したのですが、
W-ボーネに表示された緑円に触れると数字が変化するのが分かりますよね?
これと右側のメーレで選択中のSatz、ソースコードを連動させて中身を変化させれば、いよいよプログラムらしきものが書けるようになるという算段です。
とはいえ、もうちょっとかかりそうかな。
仮にプログラムが「書けた」としても実行できなければ意味ないのと
保存したデータの読み込みがまだうまくいってなくて制限かけたままだし。
そんな中、地味に画面が変わったのと上部にボタンが増えてるの気づきました?
そう、今まで空欄だった中央魔法円に、用意した任意の図形をアップする機能の追加を考えてます。
パソコンのデスクトップの壁紙みたいなもんで、プログラムの実行自体には影響ないけど見た目が中二病ファンタジーっぽさが増して個人的には満足。
※ランキング参加中
そういえば魔法陣言語作っておきながら、あまり魔法円のこと知らないなあ。
と思って色々調べて出てきたのがここ。
魔法陣の描き方を大解説!効果や道具、図形の配置を覚えよう - パンタポルタ
色々勉強になったと同時に、製作中の今からでも浪漫要素を盛り込めないかと模索中。
グリムのコンセプトがそもそも、実用性無視・浪漫全振りですからねえ。
過去記事
はい、まだプログラム言語と呼ぶには早いですが、それに近い段階となった
特筆すべきは、まずちょっと前まで悩みまくってたBohneをmæreの横に置いたことで安定したこと。ついでに四個ある選択個所の該当部分にカーソル動かしたらその部分だけ丸く、緑色に変化するようにしており、これは四角の丸み部分の変化で実現しています。
あとクリック選択したSatzに対応する魔法円を白く変化するのを実装。
これは#c0のように、それぞれの魔法円にidを割り振ることで選択を実現させました。
そして聡明な方なら細かいバグがあるのにお気づきかもですが対処する仕様が固まってないので現状まだ残してます。
さてこの後の予定ですが実際にsatz内の命令文書き換えができるようになってVer0.99、簡単なプログラムが動けばいよいよVer1.0かな?
いやあ、ここまで本当に長かった。
とはいえ、まだ先はあるので引き続き頑張りますよ、っと。
※ランキング参加中
倒れました、ガチで。
日頃の無理がたたって仕事半休して、もう食事どころか水分すら受け付けなくなってたんですが病院で薬もらって何とか一日寝たら回復。
そして今日も残業…の合間にGr3開発。
これがある意味癒しになってるなあ。
さて前回からお豆に文字を組み込んだVer97には欠点があって、四角枠内に置いた円を選択すると点滅してしまう。
おそらくは円の部分がマウス外判定するのだろうと、おまめ部分を右に配置したVer71がこれなのですが
一番下を選択すると位置がずれてしまうというバグが。
これはバグの原因を解消するのがいいのか、他の方法を模索するべきか迷い中。
ここを解消できれば、お豆から予約語一覧を選んで反映させるという、ようやく言語っぽいことができるようになるのですがー。
※ランキング参加中
前回の記事
から少し間隔が空きました。
ようやく上司不在(自分が業務代行)の忙しさから解放され定時勤務となり時間の余裕が出来、メニューバーを実装すべく色々いじってる
Gr3 Ver0.969ですが
なんということでしょう、パレットを意識して作ったはずのメニューバーが、さやえんどうのような形状に……面白いからこのままいきます(笑)
名称も豆を意味するドイツ語Bohne(ボーネ)と命名。
命令文の記入欄がmære(メーレ)ですし、メーレとボーネでゴロも良いし←
現状残像が残ったり、残像残さないようにしようとして丸いメニュー選択する前に消えちゃったりとイマイチ連携がうまくいってませんが、次のブログを書くまでには解決しようと思ってます。
次は、この丸からSatz、魔法円の機能を選択する機能の実装。
それが実現出来たらようやく魔法円描きソフトからようやくプログラム言語らしくなるのかなあと
※ランキング参加中
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。