cocos2d-x
こんにちは、未だにAndroidStudioに慣れないインターン生の宮本です。
今回は、手札をタップして選択する処理や、山札などのベクター設定、指定の札が場にあるか、などの処理を作成しました。
今回の作業は、ゲームの内部ばかりだったため、目に見える成果がなかなか出ずどのくらい進んでいるのか見当もつきません。
そのため今回は、使用中のベクターについて紹介しようと思います。
C++のプログラム内で配列を扱うときは、多くの場合コンテナのベクターかリストを使うことになると思います。
C言語では配列を使用する際、基本的には最初に使用する領域を全て確保しておかないといけませんが、これらはプログラム中で必要に応じてメモリを確保してくれます。
また、対応するライブラリをインクルードする必要があります。
ベクターとリストは似ていますが、構造が違うため得意なこと(処理が速い機能)が違います。
ベクターは添え字で指定するアクセス(ランダムアクセス)が高速で末尾以外への要素の追加がやや遅く、
リストは途中の項目の追加や削除が高速で添え字指定でのアクセスはできず先頭からたどっていくしかありません。
また、ベクターは動的配列と呼ばれるほど構造が配列と似ていて配列の延長のような形で使用できるため、CからC++を始めた多くの人が最初に扱うコンテナだと思います。
ベクターを使用するときは
#include
を最初に記述し、
std::vector<型名> 変数名;
で宣言します。
型名の部分はクラスでも大丈夫です。
ベクターに値を追加するときは、基本push_backメソッドで末尾に追加します。
値を削除するときも同様に、pop_backメソッドで末尾から削除します。
メソッド名の由来はデータ構造のスタックにおける項目の追加と削除だと思います。
もちろん任意の場所に対して挿入・削除することも可能です。ただし、任意の場所への挿入・削除は、空いた項目分を詰める処理が入るため要素数が多いほど時間がかかります。
配列と同じように扱えるため、ベクターはC++の経験がほとんどない私でも簡単に扱うことができました。
10日間もあっという間であと3日しかありませんが、ゲームを完成させられるよう頑張りたいと思います。
次回こそ、動く状態にしたいと思っています。
興味を持たれた方はお気軽にお問い合わせください。
インターンシップへの申し込み・お問い合わせ先
