アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
while(1)文がちょっと嫌かも (スコア:1)
ちょっと嫌かも。
あとコンストラクタがあっても良いかも。
ln_use_numが不定値なので、こいつが運悪く-1以下で初期化されて、
finit_card()を呼び出さずにfget_card()が呼ばれると、
ln_use[]のありえない要素を参照しようとしてお亡くなり
になる可能性があります。
自分しか使わないんなら別に良いことですが。
ってなんかエラソーなこと書くだけじゃ感じ悪いんで、
清水の舞台から飛び降りるつもりで私もソースを晒してみます。
存分に突っ込んで。とえいっ
(一応VC6で動きました)
#include <vector>
#include <time.h>
using namespace std;
class tramp
{
vector<int> _cards;
public:
tramp()
{
init();
}
void init()
{
vector<int> src_cards;
int pop_index;
_cards.clear();
for( int i=1; i < 54; i++ ){
src_cards.push_back( i );
}
srand( time(NULL) );
while( src_cards.size() > 0 ){
pop_index = ( src_cards.size() == 1 )? 0: rand() % src_cards.size();
_cards.push_back( src_cards[pop_index] );
src_cards.erase( src_cards.begin() + pop_index );
}
}
int get_card()
{
if( _cards.size() <= 0 ){ return -1; }
int card = *_cards.begin();
_cards.erase( _cards.begin() );
return card;
}
};
これが本当の C++ ですね (スコア:1)
private のところで初期化するというのが可能であれば
とりあえず回避できるのかな、後で試してみよう。
実のところ、ソースの方は全くついていけません。vector
ちゅうのが分からないと、理解できなさそうだなというの
はわかりました、調べねば。
あと、私のソースが c ライクな c++ だということはよく
わかりました(w