無料の開発環境 Delphi Starter Edition で Object Pascal言語を優しく学ぶ 第1回 「シューティングゲームのプログラム」

#【DELPHI STARTER チュートリアルシリーズ】 シーズン2 第1回 ‟シューティングゲームのプログラム„ 
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/334c36eb-90d5-5716-88f4-335f199e33c7.png)

2017年1月23日より 「Delphi / C++Builder Starter チュートリアルシリーズ」 シーズン2、全9回、3月27日まで、毎週月曜日、Delphiパートが 17時00分~17時20分、 リアルタイム放送スペシャルコンテンツが5分～10分、C++Builderパートが 17時30分~17時50分の時間割でお送りしています。

無料でダウンロード&利用できる開発環境のDelphi / C++Builder Starter エディションを使用して、プログラミング言語のDelphi (Object Pascal ), C++の基礎を学ぶオンラインセッションです。

※本内容は入門者向けに行っているものです。

第1回で学んだ内容を記載してまいります。

## **まずは使用したスライドなどの情報を掲載します。**

###使用スライド
当セミナーのスライドは下記アドレスよりご参照いただけます。
http://www.slideshare.net/ssuser194f49/delphi-cbuilder-starter-2-delphi-1

###アジェンダ
* ねらい
    * Delphiプログラムの読み方の理解
    * シーズン2学習内容の概略を知る
* 実施内容
    * シーズン１のシューティングゲームのプログラム確認
    * Object Pascal の基本コーディングの確認
    * 使用した型、文、関数の確認

###開発環境インストール
[Delphi / C++Builder Starter チュートリアルシリーズ](https://community.embarcadero.com/manage-blog-posts?view=entry&id=9038)  第1回 ‟無料で始めよう アプリ作成„をご参考になり、開発環境をインストールしてください。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/ff52ccca-b220-ff77-6e19-b7b128da0f1f.png)

###参考資料
参考資料として使用したコードはGitHubよりダウンロードいただけます。
https://github.com/mojeld/embarcadero_jp_shooting_game

##**以下、Delphiの本セッションの本筋**

###Delphiプログラムを構成するアイテムたち
Delphi (Object Pascal)言語で書かれたプログラムはおおよそ下記のアイテムで構成されています。

* コメント 
* 空白とインデント
* 識別子
* 言語キーワード
* プログラムの構造
* 文
* コンパイラ指令

それぞれのアイテムについてより詳しく下記に説明してゆきます
###コメント
* コメント
  *  コメント文とすることで、プログラムから除外
  * プログラムを視認性、可読性を高めるために利用 
     * //   
     * { … }
     * (* … *)

###空白 と インデント

* よりプログラムを見やすくするために使用される
    * 空白 → プログラム実行上(コンパイル時)は無視される
    * インデント → 空白を挿入して「字下げ」を行い、プログラムの可読性を高める。同じく実行上は無視される。
    * 改行 → 行を変え、見やすくする。同じくプログラム実行上は無視される
* セミコロン 「 ; 」→  文、命令の区切り示す（文と次の文の区別

![image](https://qiita-image-store.s3.amazonaws.com/0/145847/bef620ce-e1c3-c09b-02a6-7ad177be72d6.png)

###識別子
プログラム上で下記の項目を個別に扱う上で示す名前。
コンポーネント(クラス)の名称、関数・手続きの名称、変数の名称も識別子のひとつ

* データ型、変数の名称
* 関数、手続き名称
* クラスの名称

![image](https://qiita-image-store.s3.amazonaws.com/0/145847/9181c159-c12c-f263-171a-1d8d8d93aeff.png)

###言語キーワード（予約語）
プログラム内で使用するためにあらかじめ用意されている識別子のこと

* プログラム構造に使われるものの一例
  * program, unit,  interface, implementation, begin, end, , ,

* データ型、変数の宣言に使われる一例
  * type, var, const, string, array, record, integer, , ,  

* 言語の文に使用されるものの一例
  * if, then, else, case, of, for, while, do, function, procedure, , , 

Delphi 言語キーワードの一覧については下記のリンク先を参照のこと
https://goo.gl/IqmdpG


###プログラムの構造
プログラムの構成を担う識別子（言語キーワード）たちは以下のようなものです。上から並んでいる順序でプログラムのブロックを構成しています。

```delphi:delphiプログラム構造.dpr

unit  		    //ユニット名

interface 	    //外部からも参照されるインターフェース部であることの宣言
uses  		    //使用する外部ユニットを指定	
type 		    //外部からも参照可能なタイプ定義
const		    //外部からも参照可能な固定値定義
var		        //外部からも参照可能となるグローバル変数 定義
procedure / function	//外部からも参照可能な手続き・関数の宣言

implementation 	//実装部であることの宣言
uses  		    //実装部内でのみ使用する外部ユニットを指定
type		    //実装部内でのみ使用するタイプ定義
const		    //実装部内でのみ使用する固定値定義
var	 	        //実装部内で共通使用する外部からは隠されたグローバル変数
procedure / function	//実際の手続き、関数のプログラム実装部		
begin end;		//実装部のプログラムはbegin で始まり end で終わる
initialization	//オプション（書かなくても可）としての初期化コードを記述可能
finalization	//オプション（書かなくても可）としてクリーンアップコードを記述可能

end.		    //ユニットの最後はピリオドで終わる end. で締める。

```
参考wiki: http://docwiki.embarcadero.com/RADStudio/Berlin/ja/プログラムとユニット

###文
シューティングゲーム（上述のサンプルプログラム）で使用していた 制御文たち

* if ~ then  else		//条件式
* case of			//条件（複数）式
* for to do  (for in do) 	//ループ
* while do   (repeat do)	//ループ（一定条件下）

これら条件文、制御文は今後のチュートリアルシリーズで順次、詳しく解説してゆきます。

###コンパイラ指令
コンパイラ指令の例です。今回の入門セミナーではっ詳しく取り上げませんが、興味のある方は下記のURLから詳細をご確認ください。

* {$R *.fmx} 
* {$IFDEF xx}
* {$ENDIF}

参考Wiki : http://docwiki.embarcadero.com/RADStudio/Berlin/ja/Delphi_コンパイラ指令

エンバカデロ ブログ： https://community.embarcadero.com/blogs/entry/delphi-c-builder-starter-2-delphi-1-japan

##前作（シーズン１）のまとめ記事
前期は無料の開発環境のダウンロードとインストール、といった本当に初歩の初歩からはじめて、かんたんなシューティングゲームの作成を、30分番組の全10回でおこないました。
そのまとめ記事がこちらにあります。
[【Delphi / C++Builder Starter チュートリアルシリーズ】シーズン１ 完結！](https://community.embarcadero.com/blogs/entry/delphi-c-builder-starter-japan)
https://community.embarcadero.com/blogs/entry/delphi-c-builder-starter-japan
ご興味のある方は、こちらからその内容と、ビデオをご覧いただくことができます。



[シーズン2、第2回の記事はこちら＞＞](http://qiita.com/kazaiso/items/94046c1e780c0a44b9dd)