私はプログラミングにかなり慣れていないので、ソリューションは単純である必要があります。私がしなければならないことは、8x8 マトリックスを生成することです。後でそれを使用するため、すべての要素を 0 に設定する必要があります。次に、20 個の要素をランダムに選択する必要があります (同じものを 2 回) し、それらの要素を 1 に変更します。私が今持っているものでは、通常、毎回 15 から 18 個の「1」を出力します。2回から5回の繰り返しを意味します。それ自体は私には奇妙に一貫しているように見えるので、私が見逃しているもっと大きなものがあるに違いないと思います. 可能な要素をランダム化し、そのリストから選択することについて話している同様の他の投稿を見たことがありますが、それを行うために必要なコードは、この時点で少し頭を悩ませています。
ここで私のアプローチに何か欠陥がありますか?
int Board[8][8];
int x, y, i, a, b;
for (x = 0; x < 8; x++)
{
for (y = 0; y < 8; y++)
Board[x][y] = 0; //配列の定義
}
srand(time(NULL)); //任意なマスを1に設定
for (i = 0; i < 20; i++)
{
a = rand() % 8;
b = rand() % 8;
Board[a][b] = 1;
}
//盤面の出力
for (x = 0; x < 8; x++)
{
for (y = 0; y < 8; y++)
printf(" %d ", Board[x][y]);
printf("\n");
}