LoveRead.info » Книги » Разная литература » Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Книгу Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

121 0 18:09, 02-02-2024

Книга Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читать онлайн бесплатно без регистрации

Интернет-журнал колхозников, инженеров и разнорабочих науки. Журнал содержит материалы найденные в Интернет или написанные для Интернет и является полностью некоммерческим.

    1 ... 181 182 183 184 185 186 187 188 189 ... 192
    Перейти на страницу:
    экрана должен быть и снизу Размер_старта = 600 Размер_финиша = 600

    Х_старта = Размер_поля — Размер_старта 'Чтобы старт находился у правой кромки поля

    Х_финиша = 0 'Чтобы финиш находился у левой кромки поля

    У_старта = Размер_поля / 2 'Чтобы старт по высоте находился посредине поля

    У_финиша = Размер_поля / 2 'Чтобы финиш по высоте находился посредине поля

    Число_газонов = 30

    Максимальный_размер_газона = Размер_поля / 6 Пороговая_скорость = 200

    End Sub

    Private Sub Кнопка_начинай_сначала_С1ick()

    Клавиатура_сработала = False 'Мы еще не стартовали

    Timer1.Enabled = False 'Нечего мотору зря работать до начала гонки

    'Рисуем поле игры со всеми элементами:

    Cls 'Перед тем, как заново рисовать, надо все стереть

    Рисуем_границы_поля

    Рисуем_старт

    Рисуем_финиш

    Рисуем_газоны

    'Необходимые начальные установки:

    Ставим_машину_на_старт

    Приехали = False

    Timer1.Enabled = True 'Заводим мотор, скоро начало гонки

    Спидометр. SetFocus 'Это чтобы фокус ушел с кнопки, а то первое нажатие на стрелку действует не так, как нам надо

    End Sub

    Private Sub Рисуем_границы_поля()

    DrawWidth = 10

    Line (0, 0) — (Размер_поля, Размер_поля), vbRed, В

    DrawWidth = 1 'Возвращаем нормальную толщину карандаша

    End Sub

    Private Sub Рисуем_старт()

    Line (Х_старта, У_старта)-(Х_старта + Размер_старта, У_старта + Размер_старта), vbGreen, BF

    End Sub

    Private Sub Рисуем_финиш()

    Line (Х_финиша, У_финиша) — (Х_финиша + Размер_финиша, У_финиша + Размер_финиша), vbBlue, BF

    End Sub

    Private Sub Рисуем_газоны() 'Каждый газон — это прямоугольник случайного размера в случайном месте Dim i As Integer

    Dim Х_газона As Integer 'Горизонтальная координата верхнего левого угла газона

    Dim У_газона As Integer 'Вертикальная координата верхнего левого угла газона

    For i = 1 То Число_газонов ' Числа в формулах подобраны на опыте:

    Х_газона = 2 * Размер_финиша + Размер_поля * Rnd *2/3

    У_газона = Размер_финиша + (Размер_поля — Размер_финиша — Максимальный_размер_газона) * Rnd

    Line (Х_газона, У_газона)-(Х_газона + Максимальный_размер_газона * Rnd, У_газона + Максимальный_размер_газона * Rnd), vbMagenta, BF Next

    End Sub

    Private Sub Ставим_машину_на_старт()

    x = Х_старта:

    у = У_старта 'Координаты машины приравниваются координатам точки старта

    Скорость = 0: Путь = 0: Время = 0

    Руль = влево 'Это чтобы машина знала, куда ехать, когда стартуем нажатием на газ

    Едем_влево 'Отсюда нам нужна только ориентация машины налево, а шага не будет, так как скорость=0

    Педаль = ни_та_ни_эта 'Газовать пока нельзя, а тормозить бессмысленно

    Image_авто. Visible = True 'До первого старта я сделал машину невидимой, теперь пришла пора ей появиться

    Показываем_автомобиль

    End Sub

    Private Sub Timer1_Timer()

    Определяем_где_мы

    If Приехали Then Exit Sub

    Изменяем_скорость

    Выбираем_куда_ехать_и_делаем_шаг

    Показываем автомобиль

    Отображаем_информацию

    End Sub

    Private Sub Определяем_где_мы()

    Цвет_под_автомобилем = Point(x, y)

    Select Case Цвет_под_автомобилем

    Case vbMagenta: Скорость = 15 'На газоне скорость мала

    Case vbBlue: Сообщение.Text = "Финиш!": Timer1.Enabled = False: Приехали = True

    Case vbRed: Сообщение.Text = "Врезались в ограждение!":

    Timer1.Enabled = False: Приехали = True

    End Select

    End Sub

    Private Sub Изменяем_скорость()

    Select Case Педаль

    Case газ

    Скорость = Скорость + 5

    Case тормоз

    If Скорость > 0 Then Скорость = Скорость — 10 'потому, что тормоз быстрее газа

    If Скорость < 0 Then Скорость =0 'В результате быстрого торможения скорость может стать отрицательной, что и предотвращается

    End Select

    Педаль = ни_та_ни_эта 'Это чтобы во время набора скорости и торможения приходилось без перерыва жать на педаль

    End Sub

    Private Sub Выбираем_куда_ехать_и_делаем_шаг()

    Select Case Руль

    Case вверх: Едем_вверх

    Case вниз: Едем_вниз

    Case влево: Едем_влево

    Case вправо: Едем_вправо

    End Select

    End Sub

    Private Sub Едем_вверх()

    Image_авто. Picture = Image_вверх. Picture

    у = у — Скорость

    End Sub

    Private Sub Едем_вниз()

    Image_авто. Picture = Image_вниз. Picture

    у = у + Скорость

    End Sub

    Private Sub Едем_влево()

    Image_авто. Picture = Image_налево. Picture

    x = x — Скорость

    End Sub

    Private Sub Едем вправо()

    Image_авто. Picture = Image_направо. Picture

    х = х + Скорость

    End Sub

    Private Sub Показываем_автомобиль()

    Image_авто. Left = x

    Image_авто. Top = у

    End Sub

    Private Sub Отображаем_информацию()

    Спидометр.Text = Скорость

    Путь = Путь + Скорость 'Нужно помнить, что именем Скорость назван шаг автомобиля

    txtПуть.Text = Путь

    If Клавиатура_сработала Then Время = Время + 1 'Счетчик времени запускается только тогда, когда мы стартуем

    txtBpeмя.Text = Время

    End Sub

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    Клавиатура_сработала = True

    Select Case KeyCode

    Case vbKeyUp: If Скорость < Пороговая_скорость Then Руль = вверх 'Поворот на большой скорости запрещен

    Case vbKeyLeft: If Скорость < Пороговая_скорость Then Руль = влево

    Case vbKeyDown: If Скорость < Пороговая_скорость Then Руль = вниз

    Case vbKeyRight: If Скорость < Пороговая_скорость Then Руль = вправо

    Case vbKeySpace: Педаль = газ

    Case vbKeyB: Педаль = тормоз

    End Select

    KeyCode = 0 ' Это чтобы объекты на форме не реагировали на клавиатуру

    End Sub

    Недоработки проекта

    Замеченные мной недоработки вызваны в основном нежеланием увеличивать размер кода и заключаются в следующем:

    Координатами (х, у) машины считается ее левый верхний угол, а не центр. Причина этого — слишком простые операторы в процедуре Показываем_автомобиль. Это приводит к некоторой ассиметрии поведения машины при переезде с цвета на цвет. Немного повозившись, вы сможете исправить положение.

    При большой скорости машина делает огромные шаги от одного такта таймера к другому. А ведь цвет под собой она ощущает не непрерывно, а только на тактах таймера. Значит она может перепрыгнуть через тоненький газон, не заметив его. То же относится к финишу и особенно к ограждению. Сделайте их потолще, чем у меня на картинке, или ограничьте

    1 ... 181 182 183 184 185 186 187 188 189 ... 192
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Валентина Валентина04 июль 13:25 Большое спасибо за интересную тему.  Сюжет заманчиввй,интересный. Жду продолжения ... Лекарь Фамильяров. Том 7 - Александр Лиманский
    2. Наталья По Наталья По01 июль 10:12 Ужасный перевод:(... Аркадия - Эрин Дум
    3. Вика Вика29 июнь 21:56 Какая хрень с первых строк.  У ребенка в 14 месяце не может быть черепно мозговой травмы при падании с дивана ... Вернуть семью любой ценой - Чарли Ви
    Все комметарии
    Новинки бесплатной онлайн библиотеки