Реализовать правильно игру быки и коровы через winforms c++
Проблема заключается в том, что считает неправильно быков и коров именно в винформе, хотя в обычной консоли, вроде, все считает правильно. Существует следующая форма:
Использую функцию при загрузке формы для инициализации четырехзначного числа, которое загадал компьютер:
System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
bool bmap[10];
for (int i = 0; i != 10; i++) bmap[i] = true;
int n, number = 0;
for (int i = 1; i != 10000; i *= 10)
{
do
{
n = 1 + rand() % 10;
} while (bmap[n] == false);
bmap[n] = false;
number += i * n;
}
textBox4->Text = Convert::ToString(number);
}
Оно также выводится в левый верхний уголок, так что всегда можно сверить. Дальше нашла обычную функцию для поиска быков и коров:
void get(const int &number)
{
int bik, korova;
int input;
input = Convert::ToInt16(textBox1->Text); bik = 0, korova = 0;
for (int i = 1000; i != 0; i /= 10) {
if ((input / i % 10) == (number / i % 10))
bik++;
}
for (int i = 1000; i != 0; i /= 10) {
for (int j = 1000; j != 0; j /= 10)
{
if (i != j && (input / i % 10) == (number / j % 10))
korova++;
}
textBox2->Text = Convert::ToString(bik);
textBox3->Text = Convert::ToString(korova);
}
if(bik==4)MessageBox::Show("You won");
}
Чтобы вызвать функцию надо нажать на кнопку, реализация такая :
System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int number;
get(number);
}
Но данные никак не совпадают, даже, если ввожу число, которое загадал компьютер. Помогите, пожалуйста, уж не знаю, что делать. Задавайте вопросы, если что-то в моих обьяснениях не понятно и вы готовы помочь, буду очень благодарна.
