Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 04.05.2016
Сообщений: 1

Функция удаления элементов массива для игры "Расшифруй слово"

10.05.2016, 21:17. Показов 842. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Пишу игру "Расшифруй слово". Суть в чем: есть определенное слово, которое содержит лишние буквы, и при нажатии на "них", эта буква будет удаляться из массива, и потом сравниваться с нужным словом. Есть два массива:
C++
1
array<String^> ^Mas1;array<String^> ^Mas2;
-Первый из которых будет содержать нужное слово, к примеру, "ПРИВЕТ", а второй- это же слово, только с лишними буквами: "ПКРИВЙЕТ". При нажатии на picutrebox2(лишняя буква "К"), вызывается функция удаления элемента из второго массива, в которую передается эта буква "К" таким образом: Remove("К"). Эта функция выглядит так:
C++
1
2
3
4
void Remove(String ^p1) {int len = Mas2->Length;
                for (int i = 0; i < len; i++) {
                    if (p1 == Mas2[i])
                        delete Mas2[i];}
Но дело в том, что она удаляет один элемент, то есть при вызове этой функции повторно(допустим, для элемента "Й"), что-то идет не так. Дальше массив второй сравнивается с первым(правильным), с помощью функции сравнения, и если они совпадают, то пользователь выиграл.
C++
1
2
3
4
5
6
7
8
9
10
11
bool Compare()
            {
                int len2 = Mas2->Length;
                for (int i = 0; i < len2; i++)
                {
                    if (Mas1[i] == Mas2[i]) {
                        return true;
                    }
                    else
                        return false;
                }
Это та самая функция сравнения. Уважаемые программисты, помогите пожалуйста либо правильно удалять лишние буквы из второго массива, либо найти ошибку, либо же какой-нибудь другой вариант решения этой проблемы. Заранее спасибо!

Добавлено через 11 часов 36 минут
Помогите хоть кто-то...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2016, 21:17
Ответы с готовыми решениями:

Функция удаления диапазона элементов массива
1. Создать динамический массив на 10 элементов заполненный случайными числами. Написать функции: c) удаления диапазона элементов (от m...

Функция удаления двух элементов из массива
Ребят, нужно написать функцию удаления двух элементов. Вот что уже есть. Суть: ввел элементы; вывел элементы; удалил два элемента,...

Функция удаления всех четных элементов массива
Помогите решить дз. Спасибо 1. Создать динамический массив на 10 элементов заполненный случайными числами. Написать функции: a)...

2
8 / 8 / 4
Регистрация: 22.07.2011
Сообщений: 70
11.05.2016, 10:46
Цитата Сообщение от Erpok Посмотреть сообщение
при вызове этой функции повторно(допустим, для элемента "Й"), что-то идет не так
Что именно идет не так?
Почему Вы для хранения слов используете массивы строк, а не просто строки: String^ str1, str2?
Функция Compare будет работать неверно, так как вернет true как только Mas1[i] == Mas2[i]. То есть, если, например, Mas1[0] == Mas2[0], то Compare тут же вернет true, даже если остальные элементы массивов не совпадают. Можно переписать так
C++
1
2
3
4
5
6
7
8
9
10
bool Compare()
            {
                int len2 = Mas2->Length;
                for (int i = 0; i < len2; i++)
                {
                    if (Mas1[i] != Mas2[i])
                        return false;
                }
                return true;
       }
Если использование массивов заменить использованием строк, то вместо функции сравнение нужно будет использовать только сравнение строк.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
13.05.2016, 05:13
Erpok, вместо использования массива строк, используйте две строки - с исходным и с зашифрованным словом.
Для удаления нужных символов используйте метод Remove(). Не забывайте, что строки неизменяемы, каждый такой метод возвращает новую строку, старая остаётся неизменной.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2016, 05:13
Помогаю со студенческими работами здесь

Функция для удаления элементов
Доброй ночи! Кто сможет поделится кодом функции, которая удаляет i-й элемент из одномерного массива Представляю её так: Type TMas =...

Функция для удаления элементов по индексам
Подскажите пожалуйста, есть два массива: arr = ; arr2 = , , , ]; В первом указаны индексы строк, которые...

Функция для удаления строки из двумерного массива
Используя функции, решить указанную в варианте задачу. Массив должен передаваться в функцию как параметр. Вариант. Написать...

Функция для удаления из массива простых чисел
Написать функцию которая удаляет все простые числа из массива X.И вывести массив без простых чисел.

Функция для удаления строки из двумерного массива
Массив должен передаваться в функцию как параметр. Написать функцию для удаления строки из двумерного массива. Оставшиеся строки должны...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru