Dance the Kirby Dance !

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Dance the Kirby Dance !

Beitrag von MVXA »

Tach !
Ich hab mal aus langeweile ein 20 Zeilen langes Programm geschrieben. Schimpfen tut es wie der Topic schon sagt 'Dance the Kirby Dance !'. Seht es euch am bessten einfach mal an :mrgreen:.

Code: Alles auswählen

Global frmMain.l, lblKyrbe.l, fntArial.l, lngStep.l

frmMain = OpenWindow(#PB_Any, 0, 0, 100, 25, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Kirby")
If frmMain <> 0
    fntArial = LoadFont(1, "Arial", 9) 
    If CreateGadgetList(WindowID(frmMain))
        lblKyrbe = TextGadget(#PB_Any, 25, 5, 50, 20, "")
        SetGadgetFont(lblKyrbe, fntArial) 
    EndIf 
    
    Repeat
        Select lngStep
            Case 0: SetGadgetText(lblKyrbe, "<(^_^<)")
            Case 1: SetGadgetText(lblKyrbe, "^(^_^)^")
            Case 2: SetGadgetText(lblKyrbe, "(>^_^)>")
            Default: lngStep = -1
        EndSelect 
        lngStep + 1: Delay(500)
    Until WindowEvent() = #PB_Event_CloseWindow    
EndIf
Zuletzt geändert von MVXA am 20.02.2005 03:54, insgesamt 1-mal geändert.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

*lol* :mrgreen:

btw:
ist "Dance the Kirby Dance" irgentein zitat?

bzw. "Kyrbe Dance".....
Zuletzt geändert von Kaeru Gaman am 20.02.2005 04:20, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Sieht ganz nett aus :D
Aber warum deklarierst Du lauter Globale Variablen, es gibt nicht eine Prozedur in dem Code
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Lustig! :allright:

Das Ding frißt 100% Systemressourcen. :shock: Ich sollte mir wohl mal einen neuen Rechner anschaffen (siehe mein Profil).

(Alternative: Nimm die Zeile mit den globalen Variablen raus und füge stattdessen ein WindowEvent() ein. )

Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Sehr schön :mrgreen:
Laurin hat geschrieben:(Alternative: Nimm die Zeile mit den globalen Variablen raus und füge stattdessen ein WindowEvent() ein. )

Hmm??? Ohne geöffnetes Fenster macht aber ein WindowEvent() nicht viel sinn. Was er machen sollte ist das Delay() mit einer ElapsedMilliseconds() methode auszutauschen, dann dürfte die CPU Auslastung auch nicht so stark sein, aber was mich wundert: warum regt ihr euch wegen diesen 99% Auslastung so auf? Macht bei einem solchen kleinen Ding doch hoffentlich nichts. Bei mir hat davon noch nichts Schaden genommen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Die Delay Methode ist in der Tat sehr schlecht gewählt. Dadurch kann der User immer eine halbe Sekunde lang nicht auf das Fenster zugreifen um es etwa zu Verschieben oder zu schließen. Demnach muss man mehrfach klicken bis irgendwann per Zufall der Tastendruck erkannt wird, weil gerade die 500 ms abgelaufen sind und die anderen Messages verarbeitet werden können. Das solltest du schnell korigieren. ;)
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Bei mir wird die CPU nicht zu 100% ausgelastet /:->. Und das mit dem Delay werde ich dann nochmal überarbeiten...
Bild
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Prozessorbelastung hin oder her....
Dat Ding ist goldig. :allright:
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

richtig süß :)

aber der Code sollte wirklich überarbeitet werden, meine Idee wäre so:

Code: Alles auswählen

Global frmMain.l, lblKyrbe.l, fntArial.l, lngStep.l 

frmMain = OpenWindow(#PB_Any, 0, 0, 100, 25, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Kirby") 
SetTimer_(WindowID(),1,500,0)

If frmMain <> 0 
  fntArial = LoadFont(1, "Arial", 9) 
  If CreateGadgetList(WindowID(frmMain)) 
    lblKyrbe = TextGadget(#PB_Any, 25, 5, 50, 20, "(>^_^)>") 
    SetGadgetFont(lblKyrbe, fntArial) 
  EndIf 
  
  Repeat 
    Select WaitWindowEvent()
      Case #WM_TIMER
        Select lngStep 
          Case 0: SetGadgetText(lblKyrbe, "<(^_^<)") 
          Case 1: SetGadgetText(lblKyrbe, "^(^_^)^") 
          Case 2: SetGadgetText(lblKyrbe, "(>^_^)>") 
          Default: lngStep = -1 
        EndSelect 
        lngStep + 1
      Case #PB_Event_CloseWindow
        quit = 1
    EndSelect
  Until quit
EndIf
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

@Deeem2031
Joa, kann man so stehen lassen. Ich hate nur keine Zeit heute das nochmal zu fixen. Musste für 2 Arbeiten lernen und sonst noch Hausaufgaben machen :oops:. Ne interessante Idee wäre es ein Programm zu schreiben das speziel Dateien mit sollchen Ascii Bildchen/Filmchen einliest und dann ausführt :lol:.
Bild
Antworten