[VB6] Случайный заголовок
|
|
harmoxyne | Дата: Воскресенье, 06 Мая 2012, 10:07 | Сообщение # 1 |
заслуженный участник
Сейчас нет на сайте
| Добрый день, программеры. Мне нужна небольшая помощь. Дописывая EO, я столкнулся с идеей... Что-то типа случайных советов. То есть, пока игра загружается, ты видишь на экране совет, который каждый раз выбирается случайно из заданных. И решил я реализовать это так. Создаем Label, пускай это будет lblSovet, размещаем его в нужном нам месте, и... дальше я не придумал. В чем сам вопрос, как сделать, что бы lblSovet.caption каждый раз при запуске программы выбирался случайным образом из заданного списка возможных? Если что-то не понятно, я могу рассказать подробнее
|
|
| |
reyzor | Дата: Воскресенье, 06 Мая 2012, 10:57 | Сообщение # 2 |
Проггер в законе
Сейчас нет на сайте
| QNicolya, Создашь массив советов например из 20 штук, радомом выбираешь один из них, выдаёшь на лейбл, profit.
Юзаю Unity3d +C# Мой твиттер Помог - ставь +, Ответил на вопрос - ставь +.
|
|
| |
harmoxyne | Дата: Воскресенье, 06 Мая 2012, 11:02 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| Quote (reyzor) радомом выбираешь один из них Вот это меня интересует. Допустим, назовем массив Sovety, и как сделать рандомный выбор этого?
|
|
| |
reyzor | Дата: Воскресенье, 06 Мая 2012, 11:06 | Сообщение # 4 |
Проггер в законе
Сейчас нет на сайте
| на C# это будет выглядить так. Code Random rnd = new Random(1,20); int id = rnd.Next(); Label.text = Soveti[id];
Юзаю Unity3d +C# Мой твиттер Помог - ставь +, Ответил на вопрос - ставь +.
|
|
| |
reyzor | Дата: Воскресенье, 06 Мая 2012, 11:07 | Сообщение # 5 |
Проггер в законе
Сейчас нет на сайте
| Просто почитай про рандом на VB
Юзаю Unity3d +C# Мой твиттер Помог - ставь +, Ответил на вопрос - ставь +.
|
|
| |
shizofren | Дата: Понедельник, 07 Мая 2012, 22:29 | Сообщение # 6 |
Starting MS-DOS...
Сейчас нет на сайте
| Ну, вроде так: Code Option Explicit Dim Value As Long
Private Sub Form_Load() Randomize Value = Int(Rnd * 19)
Select Case Value Case Is = 0 Label1.Caption = "Совет №1" Case Is = 1 Label1.Caption = "Совет №2" Case Is = 2 Label1.Caption = "Совет №3" Case Is = 3 Label1.Caption = "Совет №4" Case Is = 4 Label1.Caption = "Совет №5" Case Is = 5 Label1.Caption = "Совет №6" Case Is = 6 Label1.Caption = "Совет №7" Case Is = 7 Label1.Caption = "Совет №8" Case Is = 8 Label1.Caption = "Совет №9" Case Is = 9 Label1.Caption = "Совет №10" Case Is = 10 Label1.Caption = "Совет №11" Case Is = 11 Label1.Caption = "Совет №12" Case Is = 12 Label1.Caption = "Совет №13" Case Is = 13 Label1.Caption = "Совет №14" Case Is = 14 Label1.Caption = "Совет №15" Case Is = 15 Label1.Caption = "Совет №16" Case Is = 16 Label1.Caption = "Совет №17" Case Is = 17 Label1.Caption = "Совет №18" Case Is = 18 Label1.Caption = "Совет №19" Case Is = 19 Label1.Caption = "Совет №20" End Select End Sub
Моя команда
|
|
| |
Stage | Дата: Вторник, 08 Мая 2012, 00:07 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Так писать не нужно.
|
|
| |
shizofren | Дата: Вторник, 08 Мая 2012, 08:34 | Сообщение # 8 |
Starting MS-DOS...
Сейчас нет на сайте
| Сударь, вы пришли с реальным делом или поучить меня, как нужно писать, а как нет?
Моя команда
|
|
| |
Stage | Дата: Вторник, 08 Мая 2012, 11:43 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| Quote Сударь, вы пришли с реальным делом или поучить меня, как нужно писать, а как нет? Это заметка не для тебя, а для тех кто мимо проходил. Городить огород из кейсов в задаче, где нужно достать n-элементов из списка - это true shit.
|
|
| |
shizofren | Дата: Вторник, 08 Мая 2012, 12:41 | Сообщение # 10 |
Starting MS-DOS...
Сейчас нет на сайте
| Stage, здесь мы разбираем решение задачи для человека, который не сильно разбирается в различных подходах программирования на VB. Ну, компактее код можно сделать так: Code Option Explicit Dim Value As Long Dim varSovetu(19) As String Private Sub Form_Load() Randomize n = Int(Rnd * 19) Label1.Caption = varSovetu(n) End Sub
Моя команда
Сообщение отредактировал shizofren - Пятница, 25 Мая 2012, 23:11 |
|
| |
harmoxyne | Дата: Вторник, 08 Мая 2012, 21:27 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| shizofren, спасибо, отлично работает, то что нужно
|
|
| |
-Mikle- | Дата: Среда, 09 Мая 2012, 08:49 | Сообщение # 12 |
Изобретатель велосипедов
Сейчас нет на сайте
| shizofren, совет №19 никогда не выпадет, нужно Int(Rnd * 20)
|
|
| |
shizofren | Дата: Среда, 09 Мая 2012, 12:50 | Сообщение # 13 |
Starting MS-DOS...
Сейчас нет на сайте
| -Mikle-, хм, не знал. Спасибо, просто я работаю с VB.NET, а там Rnd по другому устроен.
Моя команда
|
|
| |
NAV | Дата: Четверг, 21 Июня 2012, 11:00 | Сообщение # 14 |
частый гость
Сейчас нет на сайте
| QNicolya, там легко, нужно просто массив:
Dim Masiv(5) as String ' Допустим будет 6 советув. Тут пиши скоко хочешь Masiv(0) = "Совет 1" Masiv(1) = "Совет 2" Masiv(2) = "Совет 3" Masiv(3) = "Совет 4" Masiv(4) = "Совет 5" Masiv(5) = "Совет 6"
Private Sub Timer1_Timer() Timer1.Interval = 3000 ' Время 3 сек, что бы человек мог прочитать совет X = int((Rnd * 5)+1) lblSovet.Caption = masiv(x) End Sub
Вот и всё =) Там легко всё
|
|
| |