Понедельник, 25 Ноября 2024, 15:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[VB6] Случайный заголовок
harmoxyneДата: Воскресенье, 06 Мая 2012, 10:07 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Добрый день, программеры. Мне нужна небольшая помощь. Дописывая EO, я столкнулся с идеей... Что-то типа случайных советов. То есть, пока игра загружается, ты видишь на экране совет, который каждый раз выбирается случайно из заданных.
И решил я реализовать это так.
Создаем Label, пускай это будет lblSovet, размещаем его в нужном нам месте, и... дальше я не придумал.
В чем сам вопрос, как сделать, что бы lblSovet.caption каждый раз при запуске программы выбирался случайным образом из заданного списка возможных? wacko
Если что-то не понятно, я могу рассказать подробнее smile
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
постоянный участник
Сейчас нет на сайте
Quote
Ну, вроде так

Так писать не нужно.
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, спасибо, отлично работает, то что нужно happy
-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

Вот и всё =) Там легко всё
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг