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

Рандом из массива Button

09.05.2017, 20:28. Показов 1398. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как обратиться элементам массива рандомно? Вот сам код:

C++
1
2
3
4
5
6
7
8
9
array<Button^>^btn=gcnew array <Button^>(12){button1,button2,button3,button4,button5,button6,button7,
                 button8,button9,button10,button11,button12};
                 Random^rand=gcnew Random();
                 for(int i=0;i<=2;i++)
                 {
                    //незнаю что писать
                                       btn=btn[rand()]
                                        // хотел рандомно перемещать баттоны
                 }
Пожалуйста помогите...

Добавлено через 1 час 48 минут
не работает тот код
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.05.2017, 20:28
Ответы с готовыми решениями:

Создание динамического двумерного массива Button-ов
Столкнулся со следующей проблемой: необходимо создать динамический двумерный массив типа Button. В вижуале массивы такого типа создаются...

Если Button 1 и Button 2 нажаты - Button 3 стала активной, как?
Проверка если Button 1 и Button 2 нажаты - Button 3 стала активной Причем нужно чтобы это срабатывало только после того как вторая...

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

5
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
10.05.2017, 13:08
Рустам Бакытов,
C++
1
2
3
4
5
6
7
8
9
array<Button^>^btn=gcnew array <Button^>(12){button1,button2,button3,button4,button5,button6,button7,
                 button8,button9,button10,button11,button12};
Random^rand=gcnew Random();
for(int i=0;i<=2;i++)
{
    int rndIndex = rand->Next(btn->Length);
    Button rndBtn = btn[rndIndex];
    // ...
}
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 28
10.05.2017, 14:36  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private: System::Void button13_Click(System::Object^  sender, System::EventArgs^  e) {
                 array<Button^>^btn=gcnew array <Button^>(11){button2,button3,button4,button5,button6,button7,
                 button8,button9,button10,button11,button12};
 
                 Button^SelectRnd=gcnew Button();
 
                 Random^rand=gcnew Random();
 
                 for(int i=0;i<=btn->Length;i++)
                 {
                    int rndIndex = rand->Next(btn->Length);
                     SelectRnd->Location=button1->Location;
                    button1->Location=btn[rndIndex]->Location;
                    btn[rndIndex]->Location=SelectRnd->Location;
                    
                 }
             }
Отдуши Спасибо... Каково твое мнение на этот код менять рандомно местами баттоны...
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Button rndBtn = btn[rndIndex];
Ругался нет конструктора копии... написал иначе...
Напиши свое мнение мне это очень важно))
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
10.05.2017, 15:10
Лучший ответ Сообщение было отмечено Рустам Бакытов как решение

Решение

Цитата Сообщение от Рустам Бакытов Посмотреть сообщение
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Button rndBtn = btn[rndIndex];
Ругался нет конструктора копии... написал иначе...
Забыл про ^. Нужно было так:
C++
1
Button^ rndBtn = btn[rndIndex];
Цитата Сообщение от Рустам Бакытов Посмотреть сообщение
Каково твое мнение на этот код менять рандомно местами баттоны
Создавать кнопку только ради сохранения координаты немного избыточно, тебе не кажется?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
private: System::Void button13_Click(System::Object^  sender, System::EventArgs^  e) {
     array<Button^>^btn=gcnew array <Button^>(11){button2,button3,button4,button5,button6,button7,button8,button9,button10,button11,button12};
 
     Random^rand=gcnew Random();
 
     for(int i=0;i<=btn->Length;i++)
     {
        int rndIndex = rand->Next(btn->Length);
        Point tempLocation = button1->Location;
        button1->Location=btn[rndIndex]->Location;
        btn[rndIndex]->Location=tempLocation;
     }
}
Строку №9 можно еще записать так
C++
1
auto tempLocation = button1->Location;
И советую посмотреть алгоритм тасования Фишера-Йетса.
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 28
10.05.2017, 16:00  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
алгоритм тасования Фишера-Йетса.
Прочитал да этот метод очень хорош...
Вот только я незнаю перезаписывать массив заново или создать массив из выбранных рандомных элементов
и задать условие что будущий ранд/й элемент не равно массиву созданного...
Я очень заинтересован вот только незнаю как это реализовать..
И к слову
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Создавать кнопку только ради сохранения координаты немного избыточно, тебе не кажется?
Мне нужно ко многому научиться...
0
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 28
12.05.2017, 17:00  [ТС]
OwenGlendower,
Здравствуйте если у вас будет ваше драгоценное время помогите пожалуйста мне с кодом...Дело в том что когда происходит перемещение picture/x :
C++
1
2
3
4
5
6
7
8
9
10
11
array<PictureBox^>^select = gcnew array<PictureBox^>(16){
            pictureBox2,pictureBox3,pictureBox4,pictureBox5,pictureBox6,pictureBox7,
            pictureBox8,pictureBox9,pictureBox10,pictureBox11,pictureBox12,
            pictureBox13,pictureBox14,pictureBox15,pictureBox16,pictureBox17};
            for(int i=0;i<=select->Length;i++)
                 {
                    int rndIndex = rand->Next(select->Length);
                      Point tempLocation = pictureBox18->Location;
                    pictureBox18->Location=select[rndIndex]->Location;
                     select[rndIndex]->Location=tempLocation;
                 }
один picture/x : накладывается на другой только 1 и незнаю почему а picture/x : состоящий из 9 при перемещении(рандомно) не накладывается..

Добавлено через 9 минут
Разобрался...))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2017, 17:00
Помогаю со студенческими работами здесь

Рандом в пайтон (аппаратный рандом для генерации паролей)
суть такова есть такой скрипт на питоне wavBuf = dwParam1.contents if wavBuf.dwBytesRecorded &gt; 0 : bits =...

Рандом из массива + и -
Всем привет, нужен рандом из массива плюс и минус. Нагуглил что-то подобное, рандом работает, но вычисления нет, ниже код. Что не так? ...

Рандом из массива
Вообщем есть 2 массива, достаю из них рандомно, но как то странно он работает, вот сами массивы string RandPosX = {&quot;400&quot;,...

VBScript-овский рандом совсем не рандом
Не знаю, может я ошибаюсь, но по-моему VBScript-овский рандом совсем не рандом, т.е., генерит он вполне закономерно. Кто-нибудь слышал о...

Рандом элементов массива и их вывод
Например, при указании в массиве 2 элементов, при выводе выводится не массив с 2 элементами, а 2 массива по 9 элементов. Что не так ?)всем...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
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. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru