Путь к истине

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Путь к истине » Программирование » моя первая игрушка под винду.


моя первая игрушка под винду.

Сообщений 1 страница 3 из 3

1

Много-много лет назад, уже не помню сколько, писал под MSDOS програмки, в основном
на паскале, так как его долбали в то время у нас в универе.
А в свободное время баловался QBasic  и Turbo Basic , мне бейсик нравился больше чем паскаль,
хотя в то время паскаль знал намного лучше и глубже.
Потом в универе пересел на Дельфи, курсовую и диплом именно на Дельфях писал.
А в свободное от учений время бейсиком занимался. Раздобыл VB 1, неделю разбирался, что и как, очеень непривычной версия после дельфей казалась)))
И накатал простенькую игрушку, на форму надо скинуть пикчебокс и пару кнопок.
Вот листинг:
DefInt A-Z
Option Base 1
Dim Shared aa As Integer
Dim Shared osn(28) As Integer
Dim Shared rsx(28) As Integer
Dim Shared rsy(28) As Integer
Dim Shared sta(28) As Integer
Dim Shared vyb1 As Integer
Dim Shared vyb2 As Integer
Dim Shared mx As Integer
Dim Shared my As Integer
Dim chx As Integer
Dim chy As Integer
Dim cn As Integer
Dim cz As Integer
Dim v1 As Integer
Dim q As Double

Declare Function sndPlaySound% Lib "MMSYSTEM.DLL" (ByVal lpszSoundName$, ByVal wFlags%)

Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10

Dim SoundName$
Dim wFlags%
Dim x%

Sub kwad1 (xx As Integer, yy As Integer)
pic1.Line (xx, yy)-(xx + 40, yy + 40), QBColor(14), BF
pic1.Line (xx, yy)-(xx + 40, yy + 40), QBColor(8), B
End Sub

Sub kwad2 (xx As Integer, yy As Integer)
pic1.Line (xx, yy)-(xx + 40, yy + 40), QBColor(13), BF
pic1.Line (xx, yy)-(xx + 40, yy + 40), QBColor(8), B
End Sub

Sub kwad0 (xx As Integer, yy As Integer)
pic1.Line (xx, yy)-(xx + 40, yy + 40), QBColor(15), BF
End Sub

Sub nach ()
For i = 1 To 50
Randomize
a% = Int(28 * Rnd + 1)
b% = Int(28 * Rnd + 1)
m% = osn(a%): osn%(a%) = osn(b%): osn(b%) = m%
Next i
For i = 1 To 28
Call kwad1(rsx(i), rsy(i))
If sta(1) = 255 Then pic1.PSet (rsx(i) + 1, rsy(i) + 6), QBColor(14): pic1.Print osn(i)
Next i
End Sub

Sub pic1_MouseMove (Button As Integer, Shift As Integer, x As Single, Y As Single)
mx = x: my = Y
End Sub

Sub pic1_Click ()
vyb1 = 0: vyb2 = 0: cz = 0
For i = 1 To 28
If mx >= rsx(i) And mx <= (rsx(i) + 40) And my >= rsy(i) And my <= (rsy(i) + 40) And sta(i) = 255 Then cz = i
Next i
If cn = 1 Then vyb1 = cz
If cn = 2 Then vyb2 = cz
End Sub

Sub chek ()
akm& = pic1.Point(10, 10)
For i = 1 To 28
If sta(i) = 0 Then GoTo chee
GoTo www
chee:
If akm& = pic1.Point(rsx(i) + 10, rsy(i) - 10) And akm& = pic1.Point(rsx(i) + 30, rsy(i) - 10) Then pic1.PSet (rsx(i) + 1, rsy(i) + 6), QBColor(14): pic1.Print osn(i): sta(i) = 255: GoTo www
If akm& = pic1.Point(rsx(i) + 10, rsy(i) + 50) And akm& = pic1.Point(rsx(i) + 30, rsy(i) + 50) Then pic1.PSet (rsx(i) + 1, rsy(i) + 6), QBColor(14): pic1.Print osn(i): sta(i) = 255:
www:
Next i
End Sub

Sub winer ()
pic1.Line (10, 10)-(200, 200), QBColor(12), BF
pic1.PSet (10, 20): pic1.Print " you    win"
SoundName$ = "C:\WINDOWS\Media\tada.wav" ' The file to play
   wFlags% = SND_ASYNC Or SND_NODEFAULT
   x% = sndPlaySound(SoundName$, wFlags%)

End Sub

Sub tras ()
counn = 0
For i = 1 To 28
If sta(i) = 16 Then counn = counn + 1
Next i
If counn >= 28 Then Call winer
End Sub

Sub com1_Click ()
com1.visible = 0
aa = 1
rrr: aa = 1
pic1.Line (5, 5)-(300, 300), QBColor(15), BF
Call init
Call nach
aaa:
q = DoEvents()
If aa = 2 Then GoTo rrr
If cn = 1 And vyb1 > 0 Then Call kwad2(rsx(vyb1), rsy(vyb1)): pic1.PSet (rsx(vyb1) + 1, rsy(vyb1) + 6), QBColor(13): pic1.Print osn(vyb1): cn = 2: v1 = vyb1: GoTo bbb
GoTo aaa
bbb:
q = DoEvents()
If aa = 2 Then GoTo rrr
If vyb2 = 0 Then GoTo bbb
If v1 <> vyb2 And vyb2 > 0 And osn(v1) + osn(vyb2) = 12 Then Call kwad0(rsx(v1), rsy(v1)): Call kwad0(rsx(vyb2), rsy(vyb2)): sta(v1) = 16: sta(vyb2) = 16: Call chek: Call tras: cn = 1: GoTo aaa
If vyb2 > 0 And v1 <> vyb2 And osn(v1) + osn(vyb2) <> 12 Then Call kwad1(rsx(v1), rsy(v1)): pic1.PSet (rsx(v1) + 1, rsy(v1) + 6), QBColor(14): pic1.Print osn(v1): cn = 1: GoTo aaa
GoTo bbb
End Sub

Sub init ()
cn = 1
osn(1) = 1: osn(2) = 0: osn(3) = 2: osn(4) = 2: osn(5) = 3
osn(6) = 3: osn(7) = 4: osn(8) = 4: osn(9) = 4: osn(10) = 5
osn(11) = 5: osn(12) = 5: osn(13) = 6: osn(14) = 6: osn(15) = 6
osn(16) = 6: osn(17) = 7: osn(18) = 7: osn(19) = 7: osn(20) = 8
osn(21) = 8: osn(22) = 8: osn(23) = 9: osn(24) = 9: osn(25) = 10
osn(26) = 10: osn(27) = 11: osn(28) = 12
rsy(1) = 20: rsy(2) = 61: rsy(3) = 61: rsy(4) = 102: rsy(5) = 102
rsy(6) = 102: rsy(7) = 143: rsy(8) = 143: rsy(9) = 143: rsy(10) = 143
For i = 11 To 15: rsy(i) = 184: Next i
For i = 16 To 21: rsy(i) = 225: Next i
For i = 22 To 28: rsy(i) = 266: Next i
rsx(1) = 200: rsx(2) = 180: rsx(3) = 221
rsx(4) = 160: rsx(5) = 201: rsx(6) = 242
mm = 99
For i = 7 To 10: mm = mm + 41: rsx(i) = mm: Next i
mm = 79
For i = 11 To 15: mm = mm + 41: rsx(i) = mm: Next i
mm = 59
For i = 16 To 21: mm = mm + 41: rsx(i) = mm: Next i
mm = 39
For i = 22 To 28: mm = mm + 41: rsx(i) = mm: Next i
For i = 1 To 21: sta(i) = 0: Next i
sta(1) = 255
For i = 22 To 28: sta(i) = 255: Next i
End Sub

Sub com2_Click ()
If aa = 1 Then aa = 2
End Sub

Если выйграть, то раздаётся победный звук , использовал API )))

Сейчас смотрю на этот листинг, и понимаю, насколько коряво, и во многом даже сложно,
сейчас я совершенно по иному бы написал...
Сейчас програмлю уже на дельфи 7 , и VB6 , пробовал на VB,net но очень не понравилось,
среда программирования эстетически не подходит, пропадает  чувство програмирования, скорее пользователем
себя чувствуешь, как в ворде или фотошопе... перейду окончательно только в будующей версии, а пока теоретически изучаю,
там есть что поизучать.

0

2

Довольно часто приходиться читать, о том, что VB  слабенький язык, медленный и т.п...
VB довольно мощный язык, главное, чтобы у програмера руки откуда надо росли.
Я сейчас 2D игрушками занимаюсь, очень даже не плохо получаются, сейчас стратегию пишу. API использую только для озвучки  и для управления джойстиком, а всё остальное на VB.

0

3

Уже почти 6 лет прошло с того момента как я писал в эту тему.
VB уже не использую. снёс с компа. delphi тоже снёс. Перешёл на Lazarus и полностью меня это устраивает.
Lazarus  ещё сырой, и необходимо знать множество подводных камней, что бы программировать. но со временем развивается чуйка и всё начинает получаться с первого раза.
Для хобби подсел на LISP , установил самый простой CLISP с самой простой ИДЕ http://www.daansystems.com/lispide/
Здесь на форуме уже это обсуждалось
LISP
Ещё последнее время потянуло на С++, но пока  просто развлекаюсь. VB.net и C# сейчас не использую, хотя иногда соблазн есть.  Lazarus абсолютно для меня самодостаточный.

0


Вы здесь » Путь к истине » Программирование » моя первая игрушка под винду.