🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1084閲覧

dxlib パズルゲームの5次元配列の初期化をコンストラクタ初期化子でやりたい

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/11/27 09:33

落ち物パズルゲームの作成で提示コードの多次元配列をクラスのコンストラクタ初期化子で行いたいのですがどうすればいいのでしょうか?
class Game::Game():gblock()←ここで初期化する方法です、やはり代入しかないのでしょうか?
{

}

/*ブロック 種類、回転 x、y*/ static const int gblock[8][4][4][4] { ///////////////////0 { { {1,1,1,1}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {0,0,0,1}, {0,0,0,1}, {0,0,0,1}, {0,0,0,1}, }, { {1,1,1,1}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {0,0,1,0}, {0,0,1,0}, {0,0,1,0}, {0,0,1,0}, }, }, //////////////////////////1 { { {1,1,0,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,1,0,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,1,0,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,1,0,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0}, }, }, /////////////////////////2 { { {0,1,1,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,0,0,0}, {1,1,0,0}, {0,1,0,0}, {0,0,0,0}, }, { {0,1,1,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,0,0,0}, {1,1,0,0}, {0,1,0,0}, {0,0,0,0}, }, }, /////////////////////////3 { { {1,1,0,0}, {0,1,1,0}, {0,0,0,0}, {0,0,0,0}, }, { {0,1,0,0}, {1,1,0,0}, {1,0,0,0}, {0,0,0,0}, }, { {1,1,0,0}, {0,1,1,0}, {0,0,0,0}, {0,0,0,0}, }, { {0,1,0,0}, {1,1,0,0}, {1,0,0,0}, {0,0,0,0}, }, }, /////////////////////////4 { { {1,0,0,0}, {1,1,1,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,1,0,0}, {1,0,0,0}, {1,0,0,0}, {0,0,0,0}, }, { {1,1,1,0}, {0,0,1,0}, {0,0,0,0}, {0,0,0,0}, }, { {0,1,0,0}, {0,1,0,0}, {1,1,0,0}, {0,0,0,0}, }, }, /////////////////////////5 { { {0,0,1,0}, {1,1,1,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,0,0,0}, {1,0,0,0}, {1,1,0,0}, {0,0,0,0}, }, { {1,1,1,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,1,0,0}, {0,1,0,0}, {0,1,0,0}, {0,0,0,0}, }, }, /////////////////////////6 { { {0,1,0,0}, {1,1,1,0}, {0,0,0,0}, {0,0,0,0}, }, { {1,0,0,0}, {1,1,0,0}, {1,0,0,0}, {0,0,0,0}, }, { {1,1,1,0}, {0,1,0,0}, {0,0,0,0}, {0,0,0,0}, }, { {0,1,0,0}, {1,1,0,0}, {0,1,0,0}, {0,0,0,0}, }, }, };

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

配列がただのメンバであれば,以下のDataような感じで書けるかと思いますが,
staticメンバなのであれば,以下のSCDataのように定義側に初期化を書く形になります.

class TheClass { public: TheClass() : Data{ { {0,1}, {2,3} }, { {4,5}, {6,7} } } {} //ただの(非staticな)メンバ const int Data[2][2][2]; //staticなメンバ static const int SCData[2][2][2]; };
//staticメンバSCDataの定義箇所 const int TheClass::SCData[2][2][2] { { {0,1}, {2,3} }, { {4,5}, {6,7} } };

投稿2019/11/27 10:12

fana

総合スコア11985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/11/27 11:57 編集

質問ですが int *gblock;の場合はどうすればいいのでしょうか? 質問2、配列の{かっこで配列を作りますが一列ではなく一つのブロックの4回転分を一行に書きたいのですが方法はありますか?インデントと改行の質問です。※ロジックの質問ではありません。
yumetodo

2019/11/27 11:56

その場合まずメモリー上に配列の実態がないから確保して回るところからでは
yumetodo

2019/11/27 11:56

というわけで素直にvector使いましょ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問