| |

Fortgeschrittene ProgrammierungWettbewerb: >< Kleinster Code gewinnt ;D >< | |  | Autor: Weltraumputze | Datum: 16.10.08 13:21 |
| Ich hab aus Langweile ein kleines Spiel gecodet und es recht kompakt gemacht. Mit Pfeiltaste hoch lenkt man das Schiff nach oben und mit Pfeiltaste runter lenkt man es wieder runter. Mit der Leertaste schiesst man. Ziel ist es den Block möglichst schnell zu zerstören. Die einzelnen Felderfarben geben an wie oft es getroffen werden muss um es zu zerstören.
Aufgabe: Wie sehr kann man den Code noch kürzen um trotzdem das selbe Spiel zu erhalten?
Gegeben: Einfach ein neues Projekt öffnen und Code hineinkopieren (Das Spiel geht von den Standart Ausmaßen aus). Fertig!
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
Private Function GK(k As Long) As Boolean: GK = (GetAsyncKeyState(k) And &H8000): End Function
Private Sub Form_Load(): Dim b(9, 9), l, i, j, py, ex, ey, c, t1, t2, fy(10), fx(10), fe(10), fc, s
l = 1: py = 1800: ex = 2500: ey = 400: s = 0: For i = 0 To 9: For j = 0 To 9:
b(i, j) = Round(Rnd * l + 1, 0): Next: Next: Me.Show: Me.BackColor = RGB(0, 0, 255): Do: DoEvents:
Me.Caption = "Level :" & l & " Score :" & s: t1 = GetTickCount: With Me: .AutoRedraw = 1: .Cls: m = 0:
Me.Line (0, py - 50)-(200, py): Me.Line (0, py + 50)-(200, py): For i = 0 To 9: For j = 0 To 9:
c = b(i, j) * 20: m = m + c: Me.Line (ex + i * 200, ey + j * 200)-(ex + i * 200 + 199, ey + j * 200 + 199), _
RGB(c, c * 0.5, 255 - c), BF: Next: Next:
If m = 0 Then
l = l + 1: ex = 2500: For i = 0 To 9: For j = 0 To 9: b(i, j) = Round(Rnd * l + 1, 0): Next: Next
If l = 12 Then MsgBox "Thanks for playing. You have won!", , "": End:
End If: .AutoRedraw = 0: End With: If GK(27) Then End:
If GK(38) And py > 100 Then py = py - 45: If GK(40) And py < 3600 Then py = py + 45
If GK(32) And fc < 10 And py >= ey And py <= ey + 2000 Then
n = Round((py - ey + 100) / 200, 0) - 1: For i = 0 To 9:
If b(i, n) > 0 Then Exit For
Next:
If i < 10 Then
b(i, n) = b(i, n) - 1: fe(fc) = ex: s = s + 1
Else: fe(fc) = 10 ^ 4: End If: fy(fc) = py: fx(fc) = 200: fc = fc + 1: End If: t2 = GetTickCount
ex = ex - (t2 - t1) / 20: For i = 0 To fc - 1: If fx(i) < fe(i) Then fx(i) = fx(i) + (t2 - t1) * 10 Else fc = fc - 1
Me.Line (fx(i), fy(i))-(fx(i) + 100, fy(i)): Next: Loop: End Sub
Viel Spaß beim coden^^
MFG Weltraumputze
..oO?*Kondome sch?tzen nicht vor Geschlechtsverkehr*?Oo..
[stell dir vor es g?be Demokratie, und niemand geht hin.]
Visual Basic auf USB-Stick
Beitrag wurde zuletzt am 16.10.08 um 13:28:00 editiert. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevAniGif (VB/VBA) 
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|