回覆給 萬能版zclub: /* 那個project所在的電腦現在不在我身邊, 你如果真的要我寄給你source code的話那也是下星期三的事了(星期三我才會用到我那台電腦) 你最好真的想清楚你是否真的要我寄給你, 那你可會失去讓自己成長的一次機會 不管是在軟體方面的技術成長或是思考上面的開竅那對你都很有幫助(如果是你自己想出來的) 寫程式的演算法則可以有很多種, 我現在大概寫給你一個概念如下: */ void main() // This void may be a routine of button class in Visual C++. { int Num[6]; // 6 Numbers of 42 balls. int tmp = 0; // For temp value. bool Jud; // For general judgment. for ( int n = 0; n < 6; n++ ) { Jud = false; // Give Jud a initial/routine value; while( Jud == false ) { /* Seed the random-number generator with current time so that the numbers will be different every time we run. */ srand( (unsigned)time( NULL ) ); /* Get the random value. I test rand() in AMD CPU(K7), but sometimes it return negative. */ tmp = abs( rand() ); while ( tmp > 42 ) { tmp = tmp / 3; // I don't care what value of tmp, just process it to conform to 1 ~ 42. } Num[n] = tmp; // Stuff the result into Num array. switch( n ) { case 0: Jud = true; break; case 1: if ( Num[1] != Num[0] ) { Jud = true; } break; case 2: if ( (Num[2] != Num[1]) || (Num[2] != Num[0])) { Jud = true; } break; case 3: if ( (Num[3] != Num[2]) || Num[3] != Num[1] || (Num[3] != Num[0]) ) { Jud = true; } break; case 4: if ( (Num[4] != Num[3]) || (Num[4] != Num[2]) || (Num[4] != Num[1]) || (Num[4] != Num[0]) ) { Jud = true; } break; case 5: if ( (Num[5] != Num[4]) || (Num[5] != Num[3]) || (Num[5] != Num[2]) || (Num[5] != Num[1]) || (Num[5] != Num[0]) ) { Jud = true; } break; default: break; } // switch( n ) /* To avoid the result is zero. */ if ( tmp == 0 ) { Jud = false; } } // while( Jud == false ) } // for ( int n = 0; n < 6; n++ ) } // End of main() /* 上面的routine在VC裡應該是放在你須要它執行的地方(如: 某個button裡) "int Num[6];" 這行如果在此routine裡宣告則為區域變數, 因使其為公共變數則較方便利用(如: 宣告在某一大家都include得到的header file) 當Num[6] 裡的6個數字都已經得到的時候就可以進行show在Dialog上的動作(如: 使用text edit) 你會在VC裡拉畫面嗎? 你會產生button嗎? 你會....嗎!? 如果你完全不會或沒概念, 那我講了也是白講 此routine是我臨時寫的, 演算法與我本來的project並不一樣, 我那project有其他特殊功能及判斷, 會參考下面這個連結 http://www.roclotto.com.tw/lucky_ball/lotto-times.asp */ |