C++ と Qt で GUI を使って小さなプログラムを書いています。ボキャブラリートレーナーに似ているはずです。自分の勉強に使わせていただきます。
オブジェクトの QList があります (たとえば、文字列としての名前と説明)。
次に、int を含む 2 番目の QList があります。他のリストのすべてのオブジェクトについて、このリストには int があります。すべてのオブジェクトの開始値は 50 です。ユーザーが正しいクリックをすると、値が減り、逆もまた同様です。そのため、値が 70 のオブジェクトは、値が 30 のオブジェクトよりも頻繁にユーザーに表示される必要があります。したがって、正しい答えの方法では、それを増減し、QList を並べ替え、ランダム アルゴリズムを使用します。
if(packList.count()==0) // the QList with objects
return;
int Min = 0;
int Max = packList.count()-1; // -1 because i need the index
qsrand(QTime::currentTime().msec());
if (Min > Max)
{
int Temp = Min;
Min = Max;
Max = Temp;
}
int randNum = ((rand()%(Max-Min+1))+Min);
setPage(randNum); // randNum will be used as index in this method
今、私が必要としているのは、このランダム アルゴリズムで優先順位を実装する方法です。より高い値を持つものが 90% の確率で表示されるのは望ましくありませんが、ボキャブラリー トレーナーのようにより頻繁に表示されます。