[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Игры visual basic. Пятнашки (Игры visual basic. Пятнашки)
Игры visual basic. Пятнашки
ilimДата: Пятница, 04.02.2011, 05:30 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Сейчас мы сделаем игру - "Пятнашки", кто в такую не играл, то запоминай правила:
Надо расставить кнопки так, чтоб они были от 1 до 15. Ну короче скачай исходник и потренируйся(ну там поиграй, т.к. в начале надо научиться играть, а потом делать). ОК?
Скажу сразу, что этот шаг создавался по исходнику Павла Чаговского.
Ну, будем считать что ты научился играть, и теперь начнем делать:
На форму кинь кнопку(Command 1, Height = 495, Width = 615, Caption = ""), теперь копируй ее, и 14 раз вставь(короче тебе надо чтоб было 15 кнопок с одним именем и свойствами, но с разными индексами).
На форму кинь еще 1 кнопку(Name = Command2, Caption = "Новая игра"), 1 Shape(Shape = 0 Rectangle, BackStyle = 1 Opaque). Раставь все кнопки, короче вот что у тебя должно получиться:

Код:

'Объявляем переменные
Dim L As Long, T As Long, K As Long

Private Sub Command1_Click(Index As Integer)
L = Command1(Index).Left ' Записываем в переменную значение свойства Left нажатой кнопки(например, если нажата кнопка с индексом 6, то L = Command1(6).Left)
T = Command1(Index).Top ' В переменную записываем значение свойства Top нажатой кнопки
' Двигаем влево:
If Shape1.Left - 720 = L And Shape1.Top = T Then ' Если нажатая кнопка находиться напротив Shapa то:
' Меняем кнопку и Shape местами
K = Command1(Index).Left
Command1(Index).Left = Shape1.Left
Shape1.Left = K
End If
'Двигаем вправо

If Shape1.Left + 720 = L And Shape1.Top = T Then
K = Command1(Index).Left
Command1(Index).Left = Shape1.Left
Shape1.Left = K
End If

' Двигаем в вверх:
If Shape1.Top - 600 = T And Shape1.Left = L Then
K = Command1(Index).Top
Command1(Index).Top = Shape1.Top
Shape1.Top = K
End If
' Двигаем вниз
If Shape1.Top + 600 = T And Shape1.Left = L Then
K = Command1(Index).Top
Command1(Index).Top = Shape1.Top
Shape1.Top = K
End If
' Ну, это если все кнопки правильно выстроены(от 1 до 15, и последняя Shape) то поздравляем победителя
' только если на форме кнопки немного сдвинуты, то этот код работать не будет. ' Символ "_" нужен для переноса строки

If Command1(0).Left = 480 And Command1(1).Left = 1200 And Command1(2).Left = 1920 _
And Command1(3).Left = 2640 And Command1(4).Left = 480 And Command1(5).Left = 1200 _
And Command1(6).Left = 1920 And Command1(7).Left = 2640 And Command1(8).Left = 480 _
And Command1(9).Left = 1200 And Command1(10).Left = 1920 And Command1(11).Left = 2640 _
And Command1(12).Left = 480 And Command1(13).Left = 1200 And Command1(14).Left = 1920 _
_
And Command1(0).Top = 1080 And Command1(1).Top = 1080 And Command1(2).Top = 1080 _
And Command1(3).Top = 1080 And Command1(4).Top = 1680 And Command1(5).Top = 1680 _
And Command1(6).Top = 1680 And Command1(7).Top = 1680 And Command1(8).Top = 2280 _
And Command1(9).Top = 2280 And Command1(10).Top = 2280 And Command1(11).Top = 2280 _
And Command1(12).Top = 2880 And Command1(13).Top = 2880 And Command1(14).Top = 2880 Then
MsgBox "Ты победил"
End If
End Sub

Function Meshalka() ' Создаем Функцию Meshalka
Randomize ' генерируем всегда разные числа
For i = 0 To 900 ' Делаем цикл от 0 до 900(это чтоб хорошо перемешалось)
d = Fix(Rnd * 14) ' В переменную d записываем случайное число от 0 до 14
' Записываем в переменную координаты случайно выбранной кнопки
q = Command1(d).Left
w = Command1(d).Top
' Запиcываем координаты Shape
e = Shape1.Left
r = Shape1.Top

' Ставим кнопку на место Shape
Command1(d).Left = e
Command1(d).Top = r
' Ставим Shape на место кнопки
Shape1.Left = q
Shape1.Top = w
' P.S. и так 900 раз
Next i
End Function

Private Sub Command2_Click()
Meshalka ' При нажатии на кнопку, мешаем
End Sub

Private Sub Form_Load()
' Устанавливаем заголовки для всех кнопок
For i = 0 To 14 ' Устанавливаем надписи на кнопках
Command1(i).Caption = i + 1 ' К индексу кнопки прибавляется 1, т.к. у самой первой кнопки index = 0
Next i
Meshalka ' Мешаем кнопки
End Sub


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Игры visual basic. Пятнашки (Игры visual basic. Пятнашки)
Страница 1 из 11
Поиск: