プログラミングの手順
- はじめに。
プログラミングの正しい手順なんて存在しません。
これは、私の例ですので、何からはじめたら良いかわからない人は、参考にしてください。
- 動機。
自分の作りたいプログラムをイメージすることからはじめます。
スクリーンセーバーがほしいのか、ただ命令を試してみたいのか、ゲームを作りたいのか。
それとも既存のプログラムを改良したいのか。
対話式に質問に答えていくと何かがわかるプログラムなのか。
とにかく、どんなものを作りたいのか、イメージします。
- デザイン
作りたいもののイメージを、さらに明確にしていきます。
母艦を表示させるのか、させないのか。
させるなら大きくするか小さくするか。
部品を使うか使わないか。
使うならどのように配置するか。
これらは見た目のデザインです。
見た目のデザインは紙に書いてみるとより明確なイメージができます。
見た目だけでなく、プログラムのデザインもします。
プログラムのデザインと言ってもたいそうなものではなく、大まかにプログラムの流れを考えます。
たとえばメモ部品に書き込んで、終わる時に自動的に保存すると言うプログラムの場合、
メモ部品にユーザーが何か書く→終わるボタンを押す→ファイル名を指定して保存→終了
とかその程度でかまいません。
- 見た目の調整
プログラムのデザインの続きです。
ここから、エディタを使って実際にプログラムを書いていきます。
先ほどの大まかな流れに沿ってプログラムを書きます。
先ほどの例でいくと、
終わりボタンを、ボタンとして、作成。
その、イベントは、終了イベント。
メモ帳を、メモとして、作成。
その、幅は、母艦の、幅。その、高さは、(母艦の、高さ)-35。
待機。
*終了イベント
「ここで保存します。」と、言う。'--ファイル名を指定して保存する方法がわからなかったので取りあえず「言う」でここのラベルにきたことを確認する。
おわり。
こんな感じです。
早速起動させてみましょう。
…かっこわるいですね。
余分なバーが、いやな感じです。
そういえば、こんなことを書いた記憶が。
メモ部品の位置とボタン部品の位置が悪いです。
ボタンより、メニュー部品を使った方が良さそうです。
終了イベントに、終了処理設定。
終わりメニューを、メニュー作成。
その、イベントは、終了イベント。
(0,0)に、移動。
メモ帳を、メモとして、作成。
その、幅は、母艦の、幅。その、高さは、母艦の、高さ。
待機。
*終了イベント
「ここで保存します。」と、言う。'--ファイル名を指定して保存する方法がわからなかったので取りあえず「言う」でここのラベルにきたことを確認する。
おわり。
ま、だいたいこんなものですね。
- 調べる
やりたいことがわかっている場合、見た目の調整をするより先にわからない命令を調べます。
この辺の順番はあってないようなものです。
ここでは、ファイル名を指定して保存する方法を調べましょう。
まず、エディタの命令パネルをあさります。
「名前を付けて保存」なんてコマンドは、ないですね。
ま、仕方がないです。
代わりに、「保存」という命令を見つけました。使えそうです。
早速、右クリックから「説明をみる」を選んでマニュアルをみましょう。
…
訳わかんない。
保存については逆引きヘルプ参照のこと。
ひまわりレシピの中の文字列処理が一番わかりやすいかも。
マニュアルを読んでもわからなかったら、サンプルフォルダをのぞいてみましょう。
オンラインでサンプルを調べたいときは、このサイトの参考プログラム集を使ってください。
きっと調べやすい筈。
で、今回はエディタを作っているので、メモ帳を参考にしましょう。
オフラインでこのページをみている方はサンプル\実用の中にあるのでそれを見ましょう。
うーん…初心者向きのサンプルではないなぁ。
ま、いっか。
左側の命令パネルからラベルタブを選ぶと、このプログラムに使われているラベル名がわかります。
早速、「ファイル名前をつけて保存」をダブルクリックしましょう。
エディタ部分の下〜の方に「ファイル名前をつけて保存」ラベルがあると思います。
説明のために引用させていただきます。
*ファイル名前をつけて保存
「テキスト文書 (*.txt)|*.txt|すべてのファイル|*.*」を、読み込みファイル選択。
もし、それが、「」でなければ、(
編集ファイルは、それ。バッファを、編集ファイルへ、保存。編集フラグは、オフ。
母艦の、タイトルは、「{編集ファイル} - メモ帳」。)
戻る。
ええと、バッファというのは作者のkobachi様の作った変数で、メモ部品のテキストを指します。
と、言うわけで、「バッファ」を「メモ帳の、テキスト」に置き換えて利用しましょう。
- 検証
本当に、調べたプログラムであっているのか、調べます。
今回のように元のプログラムがある場合はいいですが、調べて、思いついた場合は何度も試します。
その場合は、ひまわりを二重起動させます。
新しく起動した方にはできるだけシンプルに命令を書きます。
終わりメニューを、メニュー作成。
その、イベントは、終了イベント。
メモ帳を、メモとして、作成。
待機。
*終了イベント
「テキスト文書 (*.txt)|*.txt|すべてのファイル|*.*」を、読み込みファイル選択。
もし、それが、「」でなければ、(
編集ファイルは、それ。(メモ帳の、テキスト)を、編集ファイルへ、保存。編集フラグは、オフ。
母艦の、タイトルは、「{編集ファイル} - メモ帳」。)
おわり。
さて、動作させてみましょう。
うーむ、ダイアログのタイトルがおかしいですね。
命令のありかによると読み込みファイル選択は選択ダイアログ〜ファイルフォルダにあるので、よい命令がないか、探してみましょう。
保存命令を見つけたときに保存=書くと書いてありました。
と、言うことは、書き込みファイル選択命令が使えそうです。早速試してみましょう。
…
いい感じです。
ところで、さっき試したとき、右上の×ボタンから閉じたらダイアログが出ませんでした。
バグ?
いえいえ、違います。設定を怠ったせいですね。
「終了処理設定」をしましょう。
「終了処理設定」についてはランタイムのパス&サンプル\そのほか\終了処理.hmwを見てください。
終了イベントに、終了処理設定。
終わりメニューを、メニュー作成。
その、イベントは、終了イベント。
(0,0)に、移動。
メモ帳を、メモとして、作成。
その、幅は、母艦の、幅。その、高さは、母艦の、高さ。
待機。
*終了イベント
「テキスト文書 (*.txt)|*.txt|すべてのファイル|*.*」を、書き込みファイル選択。
もし、それが、「」でなければ、(
編集ファイルは、それ。(メモ帳の、テキスト)を、編集ファイルへ、保存。編集フラグは、オフ。
母艦の、タイトルは、「{編集ファイル} - メモ帳」。)
おわり。
はじめに予定したものができました。
- 機能の追加
できあがったら、実際に使ってみましょう。
うーん、右端で折り返したい。
コピー&ペーストなんかのツールバーもあるといいな。
毎回名前を付けて保存じゃなくて上書き保存もしたい。
「開く」がないと使いづらい。
などなど、いろいろ不満が出てくるかと思います。
そんなときは、改良しましょう。
改良の手順は簡単。
調べるのと、検証するの繰り返しです。
調べて、どうしてもわからなかったら、質問掲示板で聞きましょう。
もちろん、過去ログ検索も忘れずに。
- おわりに。
いつもだいたいこんな感じでプログラムを作ります。
最近はあらかじめ紙に書いておくことが多いかな。
とにかく、最初の内にどのくらい明確に作りたいプログラムをイメージできるかが勝負です。
作りたい物をはっきりイメージできれば質問するときも質問しやすいし、レスが帰ってくる率も高くなります。
|
|