質問: 0; x < 3; x++) {を加えれば、解決するのではないかと思っていたりします。 以上のプログラムにおいて、なぜそのように置けないのか、もしプログラムのまま置くとしたら何が必要かを是非教えてほしいです。というのも今後の自己解決力を高めるためです。ご協力お願いいたします。 **もしforの文と配列で今回行いたいことを全コードを書いていただけるならば、なぜそのようにおけるのか引数を使う場合は()、どんな処理をさせたいかは{}を使うなどのように細かく解説して頂けると今後の自己解決力に繋がるのでよろしくお願いいたします。**
回答: 質問の内容を理解できていなかったら申し訳なのですが、おそらくやりたいのは下のようなことでしょうか? ``` if(Key[KEY_INPUT_LEFT] == 1){ playerX = std::clamp(playerX + 加算, 0 * 加算, 2 * 加算); //playerXは0*加算~2*加算の間を移動 } ``` 既にplayerX、playerYにはキャラの3*3マス上の座標を保持してありますよね。 おそらくそれだけで十分なのであって、配列に入れる必要がないと思います。 もしもプレイヤーが3*3マス上のどこにいるのかを知りたいのであれば、(playerX / 加算)で求まります。 3*3の配列を使いたいのであれば、double型ではなくbool型やint型を使用して、プレイヤーのいる場所だけtrueにする(または1にする)みたいなのが有効かと思います。 そしてif文を抜けてからDrawGraph、ScreenFlipをしましょう。 ちなみにScreenFlipした後にすぐにClearDrawScreenすると何も表示されない気がします。画面に出力してすぐにクリアしているので。