初めてのプログラム講習

2023.03.13

プログラムの設計時に気をつけること(初級編)

どうも、ヒヨコラボのプログラム担当のネズマエです。
今回は、前の続きとして、自分がプログラムの設計時に気を付けていることについてご紹介します。

設計で大事なポイントは「具体化する」

プログラムを書く前に、ほとんどのプログラマーが行うことの1つが「設計」です。
設計とは、仕様を「どうやって実現させるのか」を具体化する作業を指します。

整理した資料とにらめっこする時間です

設計のポイント1「要素の分解」

例として、「ボタンを押したらキャラクターがジャンプする」という機能の設計を行ってみます。
設計の際はコードではなく、日本語で明文化していきます。

まずは、ジャンプという動作にどんな要素があるのかを分解してみます。

・ボタンを押したらキャラクターが特定の速度で上昇する
・上昇速度は少しずつゆっくりになり、一定まで上昇すると下降し始める
・キャラクターが地面に着くと、下降が止まる

不足しているところはあるかと思いますが、おおよそこのような要素だと思います。
要素分解をきっちり行っておかないと、次のステップで苦労してしまうことになりますので、しっかりと具体化&明文化していきましょう。

機械には正確な命令をしてあげる必要があります

設計のポイント2「実現方法を検討」

要素の分解ができましたので、「ボタンを押したらキャラクターが特定の速度で上昇する」の実現方法を検討してみようと思います。
下記のように、実現したいことについて、プログラム上での具体的な動きで考えます。

・「ボタンを押したら」→「ボタンが押されたことを検知したら」
・「キャラクターが特定の速度で上昇する」→「キャラクターのY軸速度を特定の値に設定する」

「ボタンを押したらキャラクターが特定の速度で上昇する」というのをプログラムの動きに直すと、
「ボタンが押されたことを検知したら、キャラクターのY軸速度を特定の値に設定する」
ということだと言えます。

プログラムに通じる様に考える必要があります

次は実装

プログラム上での具体的な動きができたなら、あとはそれに沿ってプログラムを実装していくのみです。
「ボタン押下の検知方法」「速度の変更方法」などは調べなければいけません。
しかし、やることを明確化したので、迷ったときの指針になります。

ここからはコードをガリガリ書いていきます!

設計作業は楽しい!

設計について、実はやり方は人によって千差万別です。
あくまでも実現する方法を考えるところなので、人によってそれぞれやり方があったりします。

(例のジャンプについても、「キャラクターが特定の速度で上昇する」→「キャラクターのY軸座標をリアルタイムで変更し続ける」という実現方法もアリといえばアリなわけです。)

この設計部分はプログラムで一番個性が出るところであり、頑張り甲斐があるところなので、やってて楽しいところです。

次回は未定ですが、設計についてはまだもう少し掘り下げてやるかもしれません。


執筆者:ネズマエ