Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.01.2022
Сообщений: 10

Проблема с подсчетом коров в игре Быки и Коровы со словами

04.04.2023, 15:45. Показов 763. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, мне нужна помощь в корректировки программы. Я пишу игру Быки и Коровы, но которая будет проверять слова. Да знаю, вообще игра эта с числами, но попросили в курсовой такой формат сделать.
Так вот в чем же состоит моя проблема, у меня высчитываются быки (это когда буква стоит на том же месте что и в загаданном) все с ними отлично. Но вот проблема состоит в подсчете коров, они считаются правильно, но проблема в том, что если к примеру пользователь введет слово (мама, а загаданное будет слово кума) то выводит исключение:
System.ArgumentOutOfRangeException: "Значение StartIndex не может быть меньше нуля.
Имя параметра: startIndex"
По сути если пользователь введет любое слово, начинающие на букву, которая есть в загаданном слове и стоит в любом месте кроме первого значения выводит ошибку. Долго думал, из-за чего это может происходить, буду рад любой помощи.
Вот сам код программы где выводится исключение.
Заранее спасибо!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        private int CalculaterCowsCount(string text)
        {
            int cowscount = 0;
 
            for (int i = 0; i < secret_word.Length; i++)
            {
                if (secret_word[i] == textBox1.Text.ToLower()[i])
                {
                    continue;
                }
                for (int t = 0; t < secret_word.Length; t++)
                {
                    if (secret_word[t] == textBox1.Text.ToLower()[i] && (secret_word.Substring(i - 1).Contains(textBox1.Text.ToLower()[i]) && secret_word.Substring(0, i).Contains(textBox1.Text.ToLower()[i])))
                    {
                        cowscount++;
                        break;
                    }
                }
            }
            return cowscount;
        }
Миниатюры
Проблема с подсчетом коров в игре Быки и Коровы со словами  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2023, 15:45
Ответы с готовыми решениями:

Игра "Быки и Коровы" Не могу посчитать быков и коров)
int k, z, x, y; int k1, z1, x1, y1; int a,bol,cow; int n; n = 1; //Счёчик...

Алгоритм нахождения числа в игре Быки и Коровы
Здравствуйте. Сегодня показа преподавателю курсовую Быки и Коровы и он сказал мне улучшить алгоритм нахождения, т.е. я пишу число, а...

В игре Быки и Коровы сделать генерацию чисел один раз
Делаю игру Быки и Коровы, на Android Studio, мне нужно, чтобы числа генерировались один раз, пока игрок не угадает все числа, или пока не...

4
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
04.04.2023, 15:56
Лучший ответ Сообщение было отмечено August_Filatov как решение

Решение

August_Filatov, У вас на первой итерации в secret_word.Substring(i -1); Значит по факту на первой итерации
i = 0; Итого: i - 1 = -1; Вот вся и проблема.
1
3257 / 3275 / 556
Регистрация: 17.02.2019
Сообщений: 5,184
04.04.2023, 15:59
August_Filatov, у вас там что за i - 1 в строке 116
C#
1
 && (secret_word.Substring(i - 1).Contains(textBox1.Text.ToLower()[i]) &&
если for i в цикле равен ноль, а вы отняли 1 что будет? Правильно -1

Не по теме:

пока писал уже ответили

1
0 / 0 / 0
Регистрация: 27.01.2022
Сообщений: 10
04.04.2023, 16:18  [ТС]
Спасибо, это помогло, правда сейчас, при этом изменении у меня вообще не считаются коровы, то есть они всегда равны 0, как это можно исправить?

Добавлено через 2 минуты
Цитата Сообщение от Kazbek17 Посмотреть сообщение
August_Filatov, У вас на первой итерации в secret_word.Substring(i -1); Значит по факту на первой итерации
i = 0; Итого: i - 1 = -1; Вот вся и проблема.
0
0 / 0 / 0
Регистрация: 27.01.2022
Сообщений: 10
06.04.2023, 09:16  [ТС]
Всем привет, у меня возник такой вопрос, не могу подсчитать "Коров" в игре Быки и Коровы, только игра у меня со словами. Я знаю, что данная игра вообще играется только с числами, но мне дали такой проект сделать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 private int CalculaterCowsCount(string text)
        {
            int cowscount = 0;
 
            for (int i = 0; i < secret_word.Length; i++)
            {
                if (secret_word[i] == textBox1.Text.ToLower()[i])
                {
                    continue;
                }
                for (int t = 0; t < secret_word.Length; t++)
                {
                    if (secret_word[t] == textBox1.Text.ToLower()[i] && (secret_word.Substring(1).Contains(textBox1.Text.ToLower()[i]) && secret_word.Substring(0, i).Contains(textBox1.Text.ToLower()[i])))
                    {
                        cowscount++;
                        break;
                    }
                }
            }
            return cowscount;
        }
В данном коде, я подсчитываю, что если есть быки, то он просто пропускает. И идет подсчет коров, коровы, это когда буква стоит не на своем месте в загаданном но в слове присутствует. До этого у меня работала программа если вот этот фрагмент кода выражен так, (secret_word.Substring(i-1), но выдавал исключение. Буду благодарен любому ссобщению, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2023, 09:16
Помогаю со студенческими работами здесь

Реализовать функцию оценки попытки в игре "Быки и коровы"
https://ru.wikipedia.org/wiki/%D0%91%D1%8B%D0%BA%D0%B8_%D0%B8_%D0%BA%D0%BE%D1%80%D0%BE%D0%B2%D1%8B Реализовать функцию оценки попытки в...

Как написать сравнение к игре "Быки и коровы"
Вот часть кода: import random bull=0 cow=0 #Отдел генерации bot= for c in range(4): a=random.randint(0,9)

Переделать цифры в цвет в игре "Быки коровы"
Мне нужно сопоставить числа цветам, помогите плииз! Как? я в этом новичок И такой вопрос, можно ли в Bevel сделать круги, а не...

Пояснительная записка к игре "Быки и коровы"
игра быки и коровы есть сама программа нужна пояснительная записка, помогите пожалуйста)))) unit Unit1; interface uses ...

Помощь в игре "Быки и Коровы"
здравствуйте внедряю в онлайн игру алгоритм &quot;Быки и Коровы&quot; ввиду большой популярности оригинальной игры решил немного видоизменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru