私は作成しているゲームのためのすべての可能な解決策を作成する関数を作成しました...多分あなたの一部はブルコウゲームを知っています。ベクトルの問題、私のベクトルの配列を削除する方法?
最初に、最大4つの整数の組み合わせを作成する関数を作成しましたが、その中に繰り返し数を含めることはできません... '1234'は解決策ですが '1223' '2'は数字で繰り返されているからです。合計で、数字を繰り返さない「0123」と「9999」の間には5040の数字があります。ここで
は私の機能である:
std::vector <std::array<unsigned, 4>> HittaAllaLosningar(){
std::vector <std::array<unsigned, 4>> Losningar;
for (unsigned i = 0; i < 10; i++) {
for (unsigned j = 0; j < 10; j++) {
for (unsigned k = 0; k < 10; k++) {
for (unsigned l = 0; l < 10; l++) {
if (i != j && i != k && i != l && j != k && j != l && k != l) {
Losningar.push_back({i,j,k,l});
}
}
}
}
}
return Losningar;
}
今度は、私は数「1234」を持っているとしましょう、それは私が見つけることを試みているソリューションではありません、私は配列からソリューション「1234」を削除したいですそれは解決策ではないので...どうすればいいのですか?何時間も見つけようとしていて、それを見つけることができません。私はvector.erase
を試しましたが、私はunsigned
についての間違いをしています...また、その推測が言及する価値は文字列にあります。
私がしようとしているのは、自分のプログラムから得た文字列を取得することです。それが解決できない場合は、vector
に存在する場合はベクターから削除します。ここで
は推測を作成するコードは次のとおりです。
std::string Gissning(){
int random = RandomGen();
int a = 0;
int b = 0;
int c = 0;
int d = 0;
for (unsigned i = random-1; i < random; i++) {
for (unsigned j = 0; j < 4; j++) {
if (j == 0) {
a = v[i][j];
}
if (j == 1) {
b = v[i][j];
}
if (j == 2) {
c = v[i][j];
}
if (j == 3) {
d = v[i][j];
}
}
std::cout << std::endl;
AntalTry++;
}
std::ostringstream test;
test << a << b << c << d;
funka = test.str();
return funka;
}
randomgen
機能は、私は、ベクトルの要素を取ることができますので、私は乱数を得ることができ、その後、私はループに行くだけの機能です次に配列の整数を取得します。
私を助けるために時間をとってくれてありがとう、私は非常に感謝しています!
あなたはあなたのGissning機能を簡素化することができませんん真ん中を削除するには? (符号なしi =ランダム-1; i <ランダム; i ++) { a = v [i] [0]; b = v [i] [1]; c = v [i] [2]; d = v [i] [3]; std :: cout << std :: endl; AntalTry ++; } – Morgan