所以,我試圖製作一個需要隨機彩色圖片框的遊戲。我一直試圖製作隨機顏色生成器,但我遇到了一個我無法解釋的問題。RNG在循環中第二次迭代後給出相同的數字
運行此代碼時(內Form1_Load事件的):
for(int i=0; i<6, i++)
{
DateTime moment = DateTime::Now;
Random^RNG=gcnew Random(moment.Millisecond);
color[i]=RNG->Next(16);
if(color[i]<=9)
{
colorStr[i]=color[i].ToString();
}
else if(color[i]==10)
{
colorStr[i]="A";
}
else if(color[i]==11)
{
colorStr[i]="B";
}
else if(color[i]==12)
{
colorStr[i]="C";
}
else if(color[i]==13)
{
colorStr[i]="D";
}
else if(color[i]==14)
{
colorStr[i]="E";
}
else if(color[i]==15)
{
colorStr[i]="F";
}
FullColor+=colorStr[i]; //FullColor was initialized with a value of "#";
}
this->textBox1->Text=FullColor;
this->Player->BackColor = System::Drawing::ColorTranslator::FromHTML(FullColor);
文本框顯示或者所有相同的數量(即#000000),或所述第一數量將是唯一的,但其他五個會相等(即#A22222)。
你巨大的if-else鏈可以從數爲十六進制字符串的簡單轉換來代替。 – chris 2014-09-27 15:39:05