PureGolf mit Scrollender Matrix
Verfasst: 09.02.2006 16:27
				
				Wieder einmal werden eure Fähigkeiten im Kürzen von Codes gefordert.
Ja, hiermit eröffne ich meinen PureGolf!
Code: Alles auswählen
Structure Matrix_Letter
  Green.c
  Letter.c
EndStructure
#SCR_WIDTH = 800
#SCR_HEIGHT = 600
Global Dim Array_Screen_Letters.Matrix_Letter(#SCR_WIDTH/10,#SCR_HEIGHT/10)
Procedure ScrollMatrix()
  For i = #SCR_HEIGHT/10 To 0 Step -1
    For j = #SCR_WIDTH/10 To 0 Step -1
      If i And Random(1)=0
        scrollletter.c = Array_Screen_Letters(j,i-1)\Letter
        Green.c = Array_Screen_Letters(j,i-1)\Green
        With Array_Screen_Letters(j,i)
          If Random(3)<>1
            Letter = scrollletter
          Else
            Letter = Random(222)+33
          EndIf
          \Green = Green - Random(1)
          If \Green <= 0
            \Green = Random(250)
            \Letter = Random(222)+33
          EndIf
        EndWith
      ElseIf (Not i) And Random(1)=0
        With Array_Screen_Letters(j,i)
          \Letter = Random(222)+33
          \Green = Random(250)
        EndWith
      EndIf
    Next j
  Next i
EndProcedure
For i = 0 To #SCR_HEIGHT/10
  For j = 0 To #SCR_WIDTH/10
      With Array_Screen_Letters(j,i)
        \Green = Random(250)
        \Letter = Random(222)+33
      EndWith
  Next j
Next i
If Not InitSprite()
  MessageRequester("Fehler","Konnte DirectX nicht laden!")
EndIf
If Not InitKeyboard()
  MessageRequester("Fehler","Konnte die Tastatur nicht laden!")
EndIf
If Not OpenScreen(#SCR_WIDTH,#SCR_HEIGHT,32,"Matrix")
  MessageRequester("Fehler","Konnte keinen Screen nicht laden!")
EndIf
Repeat
  ClearScreen(0)
  StartDrawing(ScreenOutput())
  For i = 0 To #SCR_HEIGHT/10
    For j = 0 To #SCR_WIDTH/10
      With Array_Screen_Letters(j,i)
        DrawText(j*10,i*10,Chr(\Letter),RGB(0,\Green,0),0)
      EndWith
    Next j
  Next i
      
  StopDrawing()
  
  FlipBuffers()
  ScrollMatrix()
  ExamineKeyboard()
  Delay(1)
Until KeyboardPushed(#PB_Key_Escape)Code: Alles auswählen
win = OpenWindow(0,0,0,200,45,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Codezähler")
CreateGadgetList(win)
StringGadget(0,0,0,140,20,"")
ButtonGadget(1,141,0,58,20,"Browse")
ButtonGadget(2,0,22,60,20,"Count")
TextGadget(3,65,25,200,20,"Zeichen: ")
Repeat
  eventid=WaitWindowEvent()
  If eventid=#PB_Event_Gadget
    If EventGadget() = 1
      file.s = OpenFileRequester("Open","","PB-Code *.pb | *.pb| Alles *.* | *.*",0)
      SetGadgetText(0,file)
    ElseIf EventGadget() = 2
      count=0
      If file
        OpenFile(0,file)
        While Eof(0) = 0
          line.s = Trim(ReadString(0)) 
          If Mid(line,1,1) <> ";" : count+Len(line) : EndIf
        Wend
        SetGadgetText(3,"Zeichen: "+Str(count))        
      EndIf 
    EndIf
  EndIf
Until eventid = #PB_Event_CloseWindowPS: 1432!