vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Wettbewerb: >< 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.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wettbewerb: >< Kleinster Code gewinnt ;D ><1.441Weltraumputze16.10.08 13:21
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><862Weltraumputze16.10.08 14:09
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><810VBStein16.10.08 18:44
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><883Weltraumputze16.10.08 19:24
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><854VBStein16.10.08 20:07
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><904Weltraumputze17.10.08 06:53
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><801GhostRE17.10.08 08:20
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><888Weltraumputze17.10.08 11:46
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><855Dirk17.10.08 18:12
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><842Weltraumputze18.10.08 13:58
Re: Wettbewerb: >< Kleinster Code gewinnt ;D ><764SyLo13.11.08 09:46

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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