ゲームの概要は上手く説明できないので
わかりにくいと思うのですがプログラムにバグが出てしまっております。
二次元配列で用意したマップにランダムに0~2の数字が入っております。
この中から2のマスを数えランダムで2の位置にプレイヤーの初期値をセットしたいです。
MapCount関数で2の数が返ってきます。
これの余りを求めればランダムの初期位置を生成できると思うのですが
毎回同じ値しか返ってきません。
※MapCount関数で返ってくる数字は毎回違います。
わかりにくい質問ですみません。
~略 Map.Map[20][20]にランダムで0~2の値をセット~ Map.MoveCount = MapCount( Map.Map ); // 毎回値が変わってるので多分正確に動いてます。 int startPos = rand()%Map.MoveCount; int startCount = 0; for (int y=0; y<MAP_H; y++) { for (int x=0; x<MAP_W; x++) { if( startCount == startPos ){ Play.Cx = x; // 初期位置の座標 Play.Cy = y; // 初期位置の座標 break; }else if( Map.Map[y][x] != 0 && Map.Map[y][x] != 1 ) startCount++; }