arc4random()特定の範囲の数値を生成するために使用しています。ただし、断続的に負の数を受け取ります。私は奇妙なことは何もしていません:
if([aBug x] == -1) {
x = arc4random() % columns;
}
if([aBug y] == -1) {
y = arc4random() % rows;
}
ここでx、y時には負の値に設定されます。xとyは両方ともタイプintです。
arc4random()特定の範囲の数値を生成するために使用しています。ただし、断続的に負の数を受け取ります。私は奇妙なことは何もしていません:
if([aBug x] == -1) {
x = arc4random() % columns;
}
if([aBug y] == -1) {
y = arc4random() % rows;
}
ここでx、y時には負の値に設定されます。xとyは両方ともタイプintです。
u_int32_txとyを。ではなくタイプとして宣言したいようですint。つまり、符号付きではなく符号なし変数を使用する必要があります。
または、32ビットより大きい符号付き整数を使用します(例:uint64_t/ long long)。
arc4random()は常に正なので:
arc4random()関数は、0から(2 ** 32)-1の範囲の疑似乱数を返します。
私はそれを推測する必要があるcolumnsかrows、「任意に」否定的です。正の数を負の数で変更すると、負の数が返されます。
行と列のデータ型は何ですか?
私も同じ問題を抱えていました。なぜこれで修正されたのかわかりませんが、
(int)arc4Random()%4
に
(int)(arc4Random()%4)
私のために働いているようでした。