アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ見習い
ランダムにカードをゲトするクラスですね? (スコア:1)
後半になればなるほど未使用カードにヒットする確率が低くなるので、初期化の部分でカードをシャッフルして、カードを取る時は頭から順番にゲットすれば時間がかからないかもです。
C++はやった事ないので数年ぶりにCで記述(^^;
凄まじく汎用性無いけどID。
#include <stdio.h>
#include <stdlib.h>
#define CARD_NUM (54)
unsigned char deck[CARD_NUM] ;
int main() {
int ii ;
unsigned char card1, card2, temp ;
/* 初期化(適当) */
srand( 50 ) ;
/* カード初期化 */
for( ii=0; ii<CARD_NUM; ii++ ) {
deck[ii] = ii ;
}
/* シャッフル */
for( ii=0; ii<100; ii++ ) {
card1 = ( rand() % CARD_NUM ) ;
card2 = ( rand() % CARD_NUM ) ;
temp = deck[card1] ;
deck[card1] = deck[card2] ;
deck[card2] = temp ;
}
/* 取り出し */
for( ii=0; ii<CARD_NUM; ii++ ) {
printf( "%d\n", deck[ii] ) ;
}
}
すらど宴会SNS開放中 [e-meet.jp]
確かにその通りですね (スコア:1)
方が安全でもありますね。
何年も開発やってないんで頭ボケボケだす(w
Re:ランダムにカードをゲトするクラスですね? (スコア:1)
for(ii=0; ii<CARD_NUM; ii++){
card1 = (rand()% CARD_NUM);
temp = deck[ii];
deck[ii] = deck[card1];
deck[card1] = temp;
}
で十分じゃなかったでしたっけ?
というより、card1,card2とも乱数で取ってしまうと、100回ぐらいじゃ交換されないカードが出る可能性が高いという話があった記憶が。
written by こうふう
Re:ランダムにカードをゲトするクラスですね? (スコア:1)
ちょいと目から鱗です(笑)
毎回シードを変えたら1度も入れ替わらないカードの
位置も変わるだろうからまぁいいかと割といい加減
に考えておりました。 今度はこれ使わせてもらいます(^^
すらど宴会SNS開放中 [e-meet.jp]