今日から 15 パズルのコーディングに入ろうと思います。
まずタイルです。
タイルを最初に作る理由は最も他のプログラムと依存度が少なく簡単だからです。全然見当がつかない方も最後にはわかっていただけると思います。
一気に作ってしまうと経緯がわからないと思いますので少しずつコーディングしていきます。
まずはどんなプログラムでも必要なヘッダファイルの二度読み対策です。
ヘッダファイルとはレストランのメニューのようなものです。メニューがあるからこそ別のファイルにある関数を使うことができるのです。
では二度読み対策とは何か?
実はヘッダファイルは他のソースから #include によって読み込まれるのですが、同じヘッダファイルを二回読んでしまうとシンボル(関数の名前など)の重複でエラーになってしまうのです。ようは同じ名前の料理があるけどどちらが欲しいのか特定できないからエラーにしとくね、ということです。
その対策は具体的にはどうやるのか?それが次のコードです。
#ifndef __TILES_H__ #define __TILES_H__ // ここに関数のプロトタイプ(メニューのようなもの)を書きます #endif
#ifndef #define #endif がポイントです。
このコードを簡単に説明すると、もし __TILES_H__ という言葉がはじめて使われる場合はヘッダファイルの中身をコンパイラが見えるようにします。もし __TILES_H__ という言葉が過去に使われていたらヘッダファイルの中身をコンパイラから隠します、という意味になります。
この辺はいずれプリプロセッサを扱うときに詳しく解説します。
#include "tiles.h" // ↑上で作ったファイルをさっそく読み込んでいるところです
Contributions