0

Lego Mindstorms やGoogle プロジェクトの Blockly のように、コード ブロック エディターとして機能するアプリケーションを設計する必要があるプロジェクトを開始しました。

このようなアプリケーションをJavaで設計するための可能なアプローチは何ですか?

より具体的には、ブロック A が 1 つあると仮定すると、それに接続できる他のブロックをどのように定義できますか? 私が考えているのは、サブクラスを使用して階層をチェックすることです。または、別の可能な解決策は、接続が有効であることを確認するある種の 2D テーブルである可能性があります (ただし、大きくなりすぎる可能性があります)。

ps: これが SO の質問の範囲内であることを願っています。そうでない場合は、正しい方向に向けてください。

4

4 に答える 4

0

私はC#プロジェクトで同様のことをしています。ツリー ビュー コントロールを使用し、ユーザーがツリー ビューに表示されるアクションを追加できるようにしました。プログラムはツリー ビュー ノードを介して実行され、アクションを呼び出します。裏ではこのパターンを使っていた。さらにヘルプが必要な場合はコメントしてください。

于 2013-02-11T21:06:30.503 に答える
0

Lego Mindstorms は、基本的に National Instruments の LabVIEW プログラミング言語の機能を取り除いた修正バージョンです。

あなたが達成しようとしているプロジェクトはかなり複雑になると思います。エディタでビルドできるコードが実行できるアクションの数が非常に限られている場合を除き、これを正しく行うのは簡単なことではありません。

基本的に、ここではまったく新しいプログラミング言語を開発しようとしています。そして、GUI の実装の詳細について考える前に、設計している言語の「文法」やその他のセマンティクスを突き止める必要があります。たとえば、for ループをサポートする予定はありますか? whileループ?ケース/スイッチステートメント?ifステートメント?ゴトス?例外をスローしてキャッチしますか?

あなたの要件とリソースが何であるかはわかりませんが、ナショナルインスツルメンツに電話して、あなたのために/あなたと一緒にMindStorms IDEのようなものを構築するかどうかを確認するか、他のオープンソース言語があるかどうかを確認することをお勧めします.ニーズに合わせて変更できます。

開いている LabVIEW クローンがありますが、これはドイツ語のページです: http://www.myopenlab.de/

他にもいくつかあります: http://en.wikipedia.org/wiki/Visual_programming_language

于 2013-02-11T03:59:27.810 に答える
0

グラフィカルなアプローチに縛られておらず、レゴ マインドストームがどのように機能するのかわからない場合は、ANTLRが解決策として認められる可能性があります。

「ANTLR は、構造化テキストまたはバイナリ ファイルの読み取り、処理、実行、または翻訳を行うための強力なパーサー ジェネレーターです。言語、ツール、およびフレームワークの構築に広く使用されています。ANTLR は、文法から、構文解析ツリーを構築およびウォークできるパーサーを生成します。 "

于 2013-02-08T19:50:43.607 に答える
0

Blocklyを使用しないのはなぜですか? 結局のところ、それが意図されていることです。gitubのApache Licenseの下で利用できます。Blockly を使用したくない場合は、Blockly がニーズに合わないことをお知らせください。:-)

于 2016-05-26T07:06:03.430 に答える