0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 75
1

Как работает код?

26.04.2017, 08:13. Показов 503. Ответов 7
Метки нет (Все метки)

Здравствуйте. Подскажите пожалуйста как работает код.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  Dim x(3), y(3), i, i1 As Integer
    Dim abc As Graphics = Me.CreateGraphics
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        abc.FillRectangle(Brushes.Black, x(0), y(0), 16, 16)
        abc.FillRectangle(Brushes.White, x(3), y(3), 16, 16)
        For i = 3 To 1 Step -1
            i1 = i - 1
            x(i) = x(i1) : y(i) = y(i1)
        Next
        y(0) = y(0) - 16
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        x(0) = 128
        y(0) = 240
    End Sub
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2017, 08:13
Ответы с готовыми решениями:

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт...

Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код
Здравствуйте, столкнулся с такой проблемой. Код выполняемый из студии с пометкой debag, работает не...

Как работает код?
Я хочу знать, как работает этот код, может объяснить, с комментариями, пожалуйста. Задание: В...

Как работает код
С main вроде все понятно, а что дальше происходит? #include <stdio.h> int main(int t,int...

7
193 / 113 / 30
Регистрация: 05.08.2013
Сообщений: 489
26.04.2017, 09:20 2
Нормально работает. прямоугольный червяк уползает вверх окна.
0
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 75
26.04.2017, 09:28  [ТС] 3
dr_Morro, почему код рисует x(0), x(1).x(2) по отдельности? Ведь он должен рисовать x(1),x(2) в координатах x(0)? Работает он правильно. Объясните почему.
0
193 / 113 / 30
Регистрация: 05.08.2013
Сообщений: 489
26.04.2017, 09:29 4
Это типа мой код, а я сдаю экзамен?
1
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
26.04.2017, 10:26 5
Зачем вообще для х обьявлять массив?
Изначально массив х() = 128, 0, 0, 0.
По таймеру за 3 цикла массив заполняется до 128, 128, 128, 128.
То есть х(1), х(2)... равны х(0).
Цитата Сообщение от Igor986 Посмотреть сообщение
Ведь он должен рисовать x(1),x(2) в координатах x(0)?
Так и рисует.
0
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 75
26.04.2017, 10:46  [ТС] 6
Bidgo, я неправильно задал вопрос. Почему y меняется не сразу как y(0)=y(1)=y(2), а y(192,208,224,240)?
0
es geht mir gut
11264 / 4745 / 1183
Регистрация: 27.07.2011
Сообщений: 11,437
26.04.2017, 10:47 7
Цитата Сообщение от Bidgo Посмотреть сообщение
Зачем вообще для х обьявлять массив?
А если нужно ползти по горизонтали ?

Например так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    Dim abc As Graphics
    Const WxH As Integer = 16, n As Integer = 5 ' ширина высота и длина червяка
    Dim x(n), y(n) As Integer
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        abc.FillRectangle(Brushes.Black, x(0), y(0), WxH, WxH) ' рисуем голову (первую клетку)
        abc.FillRectangle(Brushes.White, x(n), y(n), WxH, WxH) ' стираем хвост  (последнюю клетку)
        For i As Integer = n To 1 Step -1
            x(i) = x(i - 1) : y(i) = y(i - 1)
        Next
        If y(0) >= WxH Then 'если еще не достигли верха, то
            y(0) -= WxH ' ползем вверх
        Else            ' иначе
            x(0) += WxH ' ползем вправо
        End If
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        x(0) = Me.Width \ 2 - WxH   '128 'начальные координаты
        y(0) = Me.Height \ 2 + WxH * (n + 1) + 30 '240 'начальные координаты
        abc = Me.CreateGraphics
        Me.BackColor = Color.White
    End Sub
0
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 75
26.04.2017, 11:23  [ТС] 8
Bidgo, всё, вроде, понял. Я упростил код и стало понятно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2017, 11:23
Помогаю со студенческими работами здесь

Как работает код
Помогите разобраться в чужом коде (практические навыки в прологе отсутствуют полностью). Особенно...

как работает код
Объясните как работает код <?php if($_SERVER=='index.php'){ ...

Как работает код?
Задание: Определить, что выведет программа. Код выводит: 1 2 3 4 Всё! #Почему выводится...

Как работает код
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru