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

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

10.05.2016, 21:17. Показов 809. Ответов 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
9670 / 4823 / 762
Регистрация: 17.04.2012
Сообщений: 9,661
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru