Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Yulunga
308 / 206 / 63
Регистрация: 22.04.2013
Сообщений: 1,340
Завершенные тесты: 1
#1

БД или Enum? Плюс выбрать рандомно

19.01.2015, 12:00. Просмотров 429. Ответов 7
Метки нет (Все метки)

приветствую!
на одном экране 24 кнопки(сделал кнопки потому, что они нажимаются). 24 разных чего-то.
задача : выбрать случайным образом из них какое-то количество. опции - можно закрепить кнопку, тогда она точно будет участвовать в "рандоме". можно наоборот открепить, тогда она точно не будет выбрана.
вопрос 1 - доступа к интернету нет, поэтому можно лучше сделать через Енум ? хотя всего будет 200 таких строчек.( на других экранах ) . или всё-таки базу данных тем не менее? (

вопрос два - как лучше сделать ? отдельное поле с тремя значениями(0-1-2) например 0 - не выбрано, 1 - выбрано, 2 - нельзя выбрать. или как ?
сорри, что много букв
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2015, 12:00
Ответы с готовыми решениями:

Enum или enum class и где его располагать
Для удобства хочу сделать перечисление уровней через enum. Но запутался, как...

Выбрать рандомно и показать
Как выбрать рандомный вопрос и показать его, при запуске скрипта? var...

выбрать рандомно TPanel
всем привет! проблема такова: имеется несколько панелей на форме (количество...

Как выбрать файл рандомно
Вообщем, получается выбрать рандомно файл, если нет ещё внутренних папок. Как...

Рандомно выбрать из таблицы 10 записей
Здравствуйте. уважаемые форумчане! Не знаю как написать запрос, который...

7
Sony17
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
20.01.2015, 11:08 #2
Че? Нифига не понял
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
20.01.2015, 11:41 #3
Попробуйте хорошенько сформулировать то, что нужно сделать. Я честно перечитывал ваше сообщение раз пять но мало чего понял. При чем тут вообще интернет и база данных?
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
20.01.2015, 11:44 #4

Не по теме:

У Пети 5 яблок, у Маши - 3. Сколько яблок у Васи?


Напишите понятнее, в чем проблема?
0
Yulunga
308 / 206 / 63
Регистрация: 22.04.2013
Сообщений: 1,340
Завершенные тесты: 1
20.01.2015, 12:01  [ТС] #5
какое редкое единодушие )
я "схитрил" и задал два вопроса разных в одном посте. нарушив, наверно.
окей, извиняюсь и тогда задайте, пожалуйста, общее направление, как делать.

есть список из 24 позиций.
как список его использовать неудобно(мне), удобно сделать 8 рядов по 3 кнопки.
каждй элемент(кнопку) можно привести в 3 состояния : "выбрано", "нельзя выбрать", "неизвестно" ( по умолчанию "неизвестно" ).
после чего нажать кнопочку и случайным образом выбрать 10 элементов ( "выбрано" должно быть выбрано в любом случае, "нельзя выбрать" не должно быть выбрано, остальное всё равно ) .
как оптимальнее это сделать ?

про БД и инет замнём для ясности.
вот. вроде яснее. спасибо.
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
20.01.2015, 12:13 #6

Не по теме:

Мда... все равно не до конца понял


Ну, если Вам не удобен список по какой-то причине, то сделайте двумерный массив, в него прописывайте состояние, если число кнопок заранее известно, то в списке нет особой надобности.
Или абстрактный класс и от него три потомка, если к ООП строго относитесь, а далее двумерный массив с этим типом.

Если нужна ссылка на кнопку, то можете в класс еще указатель добавить
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
20.01.2015, 13:18 #7
Наследуете свой класс от Button, немножко дописываете:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class MyButton extends Button {
 
    public static final int STATUS_UNPICKED = 0;
    public static final int STATUS_PICKED = 1;
    public static final int STATUS_UNAVAILABLE = 2;
 
    private int status = STATUS_UNPICKED;
 
    public MyButton(Context context) {
        super(context);
    }
 
    public MyButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
 
    public void setStatus(int status) {
        this.status = status;
    }
 
    public int getStatus() {
        return status;
    }
}
Потом собираете все кнопки сколько вам нужно в List<MyButton> и отправляете его в метод, на подобии такого:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void showRandomButton(List<MyButton> buttons, int buttonCount){
 
        List<MyButton> availableButtons = new ArrayList<>();
        int pickedCount = 0;
        for(MyButton button : buttons){
            int status = button.getStatus();
            if(status == MyButton.STATUS_UNPICKED){
                availableButtons.add(button);
                button.setVisibility(View.GONE);
            }else if(status == MyButton.STATUS_PICKED){
                pickedCount++;
            }else if(status == MyButton.STATUS_UNAVAILABLE){
                button.setVisibility(View.GONE);
            }
        }
 
        int countLeft = buttonCount - pickedCount;
 
        for(int i = 0; i < countLeft; i++){
            int randomIndex = new Random().nextInt(availableButtons.size());
            availableButtons.get(randomIndex).setVisibility(View.VISIBLE);
            availableButtons.remove(randomIndex);
        }
 
    }
Сам выбор случайных кнопок очень не оптимально я описал, но основное понятно должно быть.
1
Yulunga
308 / 206 / 63
Регистрация: 22.04.2013
Сообщений: 1,340
Завершенные тесты: 1
20.01.2015, 13:33  [ТС] #8
отлично просто. спасибо большое!!
0
20.01.2015, 13:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2015, 13:33

Как рандомно выбрать из текста слово?
Допустим,у меня в текстовом документе есть слова.Мне надо чтоб он при нажатии...

Рандомно выбрать один объект из нескольких
У меня есть n объектов 1 класса. Как из них выбрать рандомный?

Выбрать значение enum методом рефлексии
Привет всем! Стала задача: В структуре layer есть enum Place ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru