public AB checkAns_repeat(int _correctAns, int enteredNumbers) //O(N) { AB mAB = new AB(); // check _A var enteredNumbersDigits = TearNumbersToList(enteredNumbers); var correctAnsNumbersDigits = TearNumbersToList(_correctAns); int _A_cnt = 0; var _A_index = new List<int>(); // for _B for (int i = 0; i < _digits; i++) { if (enteredNumbersDigits[i].Equals(correctAnsNumbersDigits[i])) { _A_index.Insert(0, i); // for _B _A_cnt++; } } mAB.A = _A_cnt; if (mAB.A == _digits) { mAB.B = 0; return mAB; } // check _B // remove _A numbers for (int i = 0; i < _A_index.Count; i++) { enteredNumbersDigits.RemoveAt(_A_index[i]); correctAnsNumbersDigits.RemoveAt(_A_index[i]); } // find method int _B_cnt = 0; for (int i = 0; i < enteredNumbersDigits.Count; i++) { int index = correctAnsNumbersDigits.IndexOf(enteredNumbersDigits[0]); if (index != -1) { correctAnsNumbersDigits.Remove(index); _B_cnt++; } enteredNumbersDigits.RemoveAt(0); } mAB.B = _B_cnt; return mAB; }
public void reset() { _enteredNumbers = 0; _AB = new AB(); _Log = new List<string>(); }
public void checkAnswer(int enteredNumbers) { _enteredNumbers = enteredNumbers; _AB = _checkAns( _correctAns , enteredNumbers); AddLog(); }
public BullsandCowsDelegate() { _enteredNumbers = 0; _AB = new AB(); _Log = new List<string>(); }
public AB checkAns_nonrepeat(int _correctAns, int enteredNumbers) //O(N) { AB mAB = new AB(); // check _A var enteredNumbersDigits = TearNumbersToList(enteredNumbers); var correctAnsNumbersDigits = TearNumbersToList(_correctAns); int _A_cnt = 0; var _A_index = new List<int>(); // for _B for (int i = 0; i < _digits; i++) { if (enteredNumbersDigits[i].Equals(correctAnsNumbersDigits[i])) { _A_index.Insert(0, i); // for _B _A_cnt++; } } mAB.A = _A_cnt; if (mAB.A == _digits) { mAB.B = 0; return mAB; } // check _B // remove _A numbers for (int i = 0; i < _A_index.Count; i++) { enteredNumbersDigits.RemoveAt(_A_index[i]); correctAnsNumbersDigits.RemoveAt(_A_index[i]); } // _B = (original amount of numbers in two sets) - (amount of numbers in the merged set) var enteredNumbersSet = new HashSet<int>(enteredNumbersDigits); var correctAnsNumbersSet = new HashSet<int>(correctAnsNumbersDigits); int oriAmount = enteredNumbersSet.Count + correctAnsNumbersSet.Count; enteredNumbersSet.UnionWith(correctAnsNumbersSet); mAB.B = oriAmount - enteredNumbersSet.Count; return mAB; }