@NIDILLIN
DevOps, Python, Go, ML, DS

Игра «Быки и коровы», можно ли лучше?

Я новичок в программировании, потом хочу знать, -- хорош ли мой код, и насколько он плох. Более того у меня возникли проблемы при вычислении количества быков.
Загаданное число: 6990
Число пользака: 9911, например
кол-во быков показывает: 4
Я понимаю что здесь что-то не так с этой частью
spoiler

boolean[] itersCompare = new boolean[4];
		boolean[] bullsIters = new boolean[4];

		programm.bullscows[0] = 0; // При вызове метода обнуляем быков
		programm.bullscows[1] = 0; // и коров

		for (int i = 0; i < 4; i++)
		{
			if ( arrayInput[i].equals(arraySecret[i]) ) 
			{
				itersCompare[i] = true; 
				if (itersCompare[i] == true)
					programm.bullscows[1] += 1; // Если числа совпадают на позициях -- корова++

			}
			for ( int it = 0; it < 4; it++ ) // пробег числа для выявления быков
			{ 
				if ( arrayInput[i].equals(arraySecret[it]) ) 
				{
					bullsIters[i] = true; programm.bullscows[0] += 1;  // быки
				}
			
			}	
		}


В этой части также вычисляется соответствие массивов -- arrayInput, arraySecret, где и пополнение коров в придачу по соответствию элементов массивов.
Собственно весь код на github: https://github.com/NIDILLIN/bullsCows
Данный выше фрагмент находится на строчках 169-217, код большой, потому что есть читы.
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka
Токсичный шарпист
0. Это вне тематики ресурса
1. Есть проблемы с кодстайлом. На этом уже можно закончить.
2. В целом код выглядит как говно:
// |						|
		// |						|
		// V Основная работа метода V

		else { // Если чит не найден в введенной строке, то продолжаем игру как играли

			switch (numsInput.length()) // Проверка чтобы избежать exception
			{							// Избегаю его, потому что просить пользака вводить именно 4 символа
				case 3: condition = 3;  // не позволит использовать читы без больших костылей
				break;

				case 2: condition = 2;
				break;

				case 1: condition = 1; 
			}	

			for (int i = 0; i < condition; i++) // Заполнение массива числами. 
				Input[i] = numsInput.substring(i, i + 1); // i-й элемент массива есть строка-символ input-а
		}

Читайте книгу "Чистый код"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект