Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 11
Всем привет.

1.Есть int массив в который записываются числа от 1 до 8.

2.При каждом нажатии на кнопку в массив на свое место записывается цифра с шагом +1. т.е. сначала пусто, при первом нажатии цифра 1, при втором 2 и так до 8, потом все повторяется сначала. Таких кнопок несколько и они используют один и тот же массив но с разными index значениями.

3. Мне необходимо сделать функцию, которая бы проверяла массив на наличие уже используемых цифр. Допустим: поиск по цифре 2, цифра 2 используется, далее поиск по цифре 3 (шаг +1) и так далее, пока цифры не будут заняты.

Я пробовал через ForEachLoopWithBreak, но у меня все вылетает с крэшем, подскажите как правильно реализовать эту функцию?

Изображение
Аватара пользователя
Пользователь
Сообщения: 564
Верхнее кольцевание 100% не нужно.
Пользователь
Сообщения: 558
Crocoraffe Danny писал(а):
Мне необходимо сделать функцию, которая бы проверяла массив на наличие уже используемых цифр. Допустим: поиск по цифре 2, цифра 2 используется, далее поиск по цифре 3 (шаг +1) и так далее, пока цифры не будут заняты.


AddUnique добавляет значение в массив, только если такого нет, мб поможет.
Аватара пользователя
Администратор
Сообщения: 1581
А что сделать-то нужно? Потому что точного вопроса я не увидел..
_________________
Просьба, не писать вопросы по движку в ЛС. Я не единственный, кто знает UE4, и поэтому пишите на форум или в группу.
Аватара пользователя
Пользователь
Сообщения: 17
По описанию проблемы и приложенному скрину, я бы предположил, что:

если кнопки например 3, то начальный массив будет выглядеть как 24 нуля, когда каждая кнопка была нажата по 8 раз не важно в каком порядке, то он примет вид 123456781234567812345678

чтобы заполнить массив в таком порядке, не надо искать одинаковый элемент.

создаешь функцию, которую вызываешь при клике на кнопку и передаешь этой функции номер кнопки(1 - первая кнопка, 2 - вторая и т.д.). далее используя этот номер пробегаешь по необходимым индексам, сравниваешь с нулем и записываешь необходимые числа.
Аватара пользователя
Пользователь
Сообщения: 11
[quote="Селеменев Иван"]По описанию проблемы и приложенному скрину, я бы предположил, что:

если кнопки например 3, то начальный массив будет выглядеть как 24 нуля, когда каждая кнопка была нажата по 8 раз не важно в каком порядке, то он примет вид 123456781234567812345678

почти, начальный массив выглядит как 8 нулей, нажал на кнопку массив выглядит так. 10000000, нажал на вторую кнопку массив должен выглядеть так 12000000

т.е. берем цифру 1, проверяем массив, выдается булевая о том что цифра уже используется, к ней прибавляем 1, и проверяем используется ли в массиве цифра 2 если используется, то прибавляем еще 1, если не используется записываем в массив.

Вопрос сформулирую. как сделать проверку чисел с шагом (исходное число +1) в массиве?
Аватара пользователя
Пользователь
Сообщения: 564
Почему бы не написать, что именно вы хотите сделать в игре, мб так проще будет?
Аватара пользователя
Пользователь
Сообщения: 11
Hoyt Ridge писал(а):
Почему бы не написать, что именно вы хотите сделать в игре, мб так проще будет?


Я хочу сделать логику выбора точки спавна на карте как в игре generals.

Изображение
Аватара пользователя
Пользователь
Сообщения: 17
При нажатии на КНОПКУ (точку спавна) записывай в массив:

masInt(порядковый номер КНОПКИ)= номер игрока, нажавшего на кнопку 1-8

Тут несколько условий:

1. значение по выбранному индексу в массиве отлично от нуля и не равно номеру нашего игрока (т.е. другой игрок нажал на кнопку до вас), в этом случает ничего не происходит

2. значение не равно нулю, но равно номеру вашего игрока (вы выбрали точку), тогда меняем это значение на ноль( т.е. освобождаем точку спавна)

3. значение равно нулю, сначала пробегаем отдельным циклом по массиву и ищем число, равное номеру нашего игрока, если находим, то заменяем его на ноль и теперь спокойно записываем номер нашего игрока на новое место


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница