入れ子のif文の中でforループを抜けようとしているImだから、基本的にはMasterMind Gameをやっていて、実際にユーザーが実際にどのくらい正しいかを知ろうとしています。ですから、基本的には、AIのバイナリ番号を配列に格納してから、各バイナリディジットをそれと比較していました。ユーザーのバイナリディジットがAIのバイナリディジットに等しいとすぐに、ループ...私はそれについてこのように考えて、私がやった:forループを壊すC++
void MasterMind::evaluateCorrection()
{
// AI : 1 1 1 0
//USER: 1 0 1 1
//Store AI In Array
int AI[3];
int count = 0;
std::copy(binaries.begin(), binaries.end(), AI);
for(std::vector<char>::iterator itAI= numbers.begin() ; itAI != numbers.end(); itAI++)
{
for(int i=0; i<=3;i++)
{
char numberAt = *itAI;
int intNumberAt = numberAt - '0';
if(intNumberAt = AI[i])
{
cout << intNumberAt << " VS " << AI[i] << endl;
actuallyCorrect++;
break;
}
}
}
cout << "\n ACTUALLY CORRECT " << actuallyCorrect << endl;
}
は、だから私はbashで、このコードを取得する場合:
BINARY :
1111
PLEASE ENTER A 4 DIGIT BINARY! OR PROGRAM WILL EXIT
1123
YOU HAVE 2 POSITIONS CORRECT
1 VS 1
1 VS 1
1 VS 1
1 VS 1
ACTUALLY CORRECT 4
それは明らかに正しくはありません..私は1123を入力し、それはちょうど4が実際に正しいと言いました...まあ実際には1と1に実際には2だけが実際にあります。
あなたは 'AI [i]が' 'ときI = 3'にアクセスしてはならないので、' AI [3] '、範囲外のです。 – MikeCAT
'intNumberAt = AI [i]'は代入であり、比較ではありません。これがあなたがしたいことだと確信していますか? – MikeCAT
Wow there @MikeCAT Woww ...私はgoofをやった – JOHHNYDEP