Die große Erkenntnis

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Die große Erkenntnis

Beitrag von NicTheQuick »

Am schlimmsten ist es, wenn man irgendwann mal um einen Bug herum programmieren musste, aber nicht mehr daran denkt. Dann vereinfacht man den Code und wundert sich, warum es nicht mehr funktioniert. Dann sucht man den Bug im Forum und merkt, dass man ihn damals selbst gemeldet hatte. :mrgreen:
Bild
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Die große Erkenntnis

Beitrag von 7x7 »

Kurzer hat geschrieben:Keine Sorge STARGÅTE, ab einem bestimmten Alter kehrt sich das ganze dann auch wieder um. :lol: :wink:

Da sitzt Du dann vor einer Problemstellung, die Du vor x Jahren mal eben aus der Hüfte gelöst hast und bekommst es nicht mehr gebacken.
Volle 100 Punkte :allright:

Btw: Werde dieses Jahr meinen 60. "feiern" (OMG...dann gehe ich auf die "70" zu :cry: )
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
Macros
Beiträge: 1314
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Re: Die große Erkenntnis

Beitrag von Macros »

NicTheQuick hat geschrieben:Dann sucht man den Bug im Forum und merkt, dass man ihn damals selbst gemeldet hatte. :mrgreen:
Oh ja, das ist mir auch passiert, wahrscheinlich öfter als mich über alte komplizierte Lösungen zu wundern.

Was ich schaffe: Ich beschließe spontan etwas kleines mathematisches zu schreiben. Z.B. einen Muttertagsgruß für meine Mutter, der Blumen wachsen lässt.
Hock mich mitten in der Nacht hin, lege los und werde um 3 Uhr fertig.
Jahre später denk ich mir, wäre doch schön das nochmal anzusehen.
Doch ich bekomme es nicht hin, den Code auf aktuellem PB laufen zu lassen, geschweige denn, ihn zu verstehen :lol:

Edit: Der Code läuft wieder :D Zum verstehen bräuchte ich wohl noch etwas ;)
Wen Interesse besteht, kann ich das Kunstwerk hier reinstellen.
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Die große Erkenntnis

Beitrag von mk-soft »

Bei mir kann ich die gesammelten Werke der letzten 11 Jahre von Purebasic zu 90% wegwerfen. Ist eh nicht ordentlich Dokumentiert.
Macht oft Sinn neu anzufangen...

Was ich aber bei mir merke, das ich in meinen Programmierspiel immer mehr Konservativ werden und kaum noch was ändere...
Muss am Alter liegen.

Arbeite jetzt auch schon seit über 20 Jahre als Programmierer und Anwendungsentwickler in der Industrie und verwende meisten irgendwelche Hantierungs Bausteine für PLC´s die ich vor Jahren mal entwickelt habe und kaum noch anpasse.
Manchmal denke ich man könnte mal was elementares ändern. Aber wo zu. Funktionieren doch in duzenden von Anlagen.

Muss auch am Alter liegen...

Vielleicht sollte man mal was anderes machen. Hab aber nichts gescheites gelernt :mrgreen:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Die große Erkenntnis

Beitrag von STARGÅTE »

@Macros: Ja gerne zeig mal.

@mk-soft:
mk-soft hat geschrieben:Bei mir kann ich die gesammelten Werke der letzten 11 Jahre von Purebasic zu 90% wegwerfen. Ist eh nicht ordentlich Dokumentiert.Macht oft Sinn neu anzufangen...
Jo ich habe auch so einen Ordner, der nennt sich "Archiv", wobei der noch nicht gezippt ist^^.
In dem Archiv ist aber noch ein Ordner "AlteProjekte" in dem die Projekt schon gezippt sind.
mk-soft hat geschrieben:Manchmal denke ich man könnte mal was elementares ändern. Aber wo zu. Funktionieren doch in duzenden von Anlagen.
So ähnlich geht es mir mit einigen meine Includes.
Selbst in aktuellen Projekten, verwende ich noch Includes, deren Code nach meiner "heutigen" Sicht veraltet ist.
Dennnoch erfüllen sie ihre Aufgabe und ich sage mir auch, wozu noch mal drüber nachdenken.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Die große Erkenntnis

Beitrag von RSBasic »

Das ist der Vorteil und die Aufgabe von automatisierten, fertig geschriebenen, wiederverwendbaren Prozeduren.
Es ist nicht so sinnvoll, wenn man in neueren Projekten immer wieder die gleichen Funktionen neu schreibt, obwohl diese bereits in alten Projekten existieren.
Das Zauberwort lautet Wiederverwendbarkeit. Wenn die Funktionen/Prozeduren/Includes fehlerfrei und gut mit Parametern einsetzbar sind, dann muss man das Rad nicht ständig neu erfinden und man kann diese Funktionen wiederverwenden. Deshalb spielt es keine Rolle, wie alt die Funktionen sind. Solange sie automatisiert und gut anwendbar sind, ist das ein großer Vorteil und man spart viel Zeit beim Entwickeln eines neuen Projektes.
Ich habe inzwischen auch sehr viele Funktionen, die ich erstellt habe, und muss diese in einem neuen Projekt nur anwenden und das Projekt ist schon halb fertig.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Macros
Beiträge: 1314
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Re: Die große Erkenntnis

Beitrag von Macros »

@STARGÅTE Wie du willst ;)

Alles möglichst originalgetreu gehalten.

Code: Alles auswählen

InitSprite()
InitKeyboard()

OpenScreen(1024,768,32,"test")
id=LoadFont(1,"Magic the Gathering",50)


If CreateSprite(1,1024,768)=0
  End
EndIf

Procedure DrawFl(x,y,col)
  Circle(x,y-5,6,col)
  If col=$1AF4E5
    Circle(x,y-5,3,$3E4A75)
  Else
    Circle(x,y-5,3,$ffff)
  EndIf
EndProcedure

Structure pf
  x.l
  y.l
  ux.l
  uy.l
  col.f
  sp.l
EndStructure

Structure fl
  x.l
  y.l
  x2.l
  y2.l
  fl.l
  col.l
EndStructure

Global Dim flower.fl(50,100)
NewList p.pf()

Procedure deleteflowers()
  For a=0 To 50
    For b=0 To 100
      flower(a,b)\x=0
      flower(a,b)\y=0
      flower(a,b)\x2=0
      flower(a,b)\y2=0
      flower(a,b)\fl=0
      flower(a,b)\col=0
    Next
  Next
EndProcedure


delay=1000
state=1

Repeat
  ExamineKeyboard()
  FlipBuffers()



  If delay<0
    state+1
    delay=1000
  Else
    delay-10
  EndIf

  If state>2 Or state=1
    draw=1
  Else
    draw=0
  EndIf
  If oldstate=4 And state=5
    count=0
  EndIf
  If oldstate=6 And state=7
    sin.f=0
    count=0
  EndIf
  If State=8 And oldstate=7
    deleteflowers()
    For a=1 To 50
      flower(a,0)\x=Random(1004)+10
      flower(a,0)\y=680+Random(20)-10
      flower(a,0)\x2=flower(a,0)\x+Random(10)-5
      flower(a,0)\y2=flower(a,0)\y-5-Random(10)

    Next

  EndIf
  If state=4 And oldstate=3
    ForEach p()
      If p()\col<>$ff
        DeleteElement(p())
      EndIf
    Next
  EndIf
  oldstate=state

  If draw=1
    If StartDrawing(SpriteOutput(1))=0
      Debug "No Sprite drawing"
    EndIf
    start=1
    If claus=0
      Box(0,0,1024,768,0)
    EndIf
  EndIf

  Select state
    Case 1
      DrawingMode(1)
      DrawingFont(id)
      DrawText(105,105,"Alles Gute zum Muttertag",$00ff,0)
      claus=1
    Case 2
      ClearList(p())
      StartDrawing(SpriteOutput(1))
      For x=0 To 1023
        For y=0 To 700
          tmp=Point(x,y)
          If tmp<>0 And tmp<>$ff00
            AddElement(p())
            p()\x=x
            p()\y=y
            p()\ux=x
            p()\uy=y
            p()\col=tmp
            If tmp=$ff
              p()\sp=Random(2)+2
            Else
              p()\sp=Random(2)+4
              If Random(1)=0 Or Random(2)=0
                DeleteElement(p())
              EndIf
            EndIf
          EndIf
        Next
      Next
      StopDrawing()
      claus=0
      state+1
    Case 3
      ForEach  p()
        If p()\y<700 Or p()\col<>$ff
          p()\y+p()\sp
        EndIf
        If p()\y>766
          DeleteElement(p())
        Else
          current=ListIndex(p())
          currenty=p()\y
          currentx=p()\x
          If Random(1)=1
            Plot(p()\x,p()\y,p()\col)
          EndIf
        EndIf
      Next

      delay+7
    Case 4
      delay+6
      count+1
      sin.f+0.005/Round(count/12,1)
      ForEach  p()
        p()\y=700-Abs(Sin((p()\ux+300)/p()\uy/3*sin)*700)
        p()\x=p()\ux-Abs(Sin(Cos(p()\ux/1000*sin)*Sin(p()\uy/1000*sin)*5)*p()\ux)
        Plot(p()\x,p()\y,p()\col)
        p()\col=RGB(Abs(Cos(sin+p()\y/100)*255),Abs(Sin(sin+p()\x/100)*255),Abs(Cos(sin+p()\y/100-p()\x/100)*255))
      Next
    Case 5
      delay+6
      count+1
      sin.f-0.005/Round(count/12,1)
      ForEach  p()
        p()\y=700-Abs(Sin((p()\ux+300)/p()\uy/3*sin)*700)
        p()\x=p()\ux-Abs(Sin(Cos(p()\ux/1000*sin)*Sin(p()\uy/1000*sin)*5)*p()\ux)
        Plot(p()\x,p()\y,p()\col)
        p()\col=RGB(Abs(Cos(sin+p()\y/100)*255),Abs(Sin(sin+p()\x/100)*255),Abs(Cos(sin+p()\y/100-p()\x/100)*255))
      Next
    Case 6
      delay+7
      sin.f+0.05
      ForEach  p()
        If p()\y>p()\uy
          p()\y-p()\sp*2+Sin(sin+p()\x/100)*2
          Plot(p()\x+Sin(sin+p()\x/100)*30,p()\y-Cos(sin+p()\y/100)*30,p()\col)
          p()\col=RGB(Abs(Cos(sin+p()\y/100)*255),Abs(Sin(sin+p()\x/100)*255),Abs(Cos(sin+p()\y/100-p()\x/100)*255))
        Else
          Plot(p()\x+Sin(sin+p()\x/100)*30,p()\uy,p()\col)
        EndIf
      Next
    Case 7
      ForEach p()
        p()\x=p()\ux
        p()\y=p()\uy
      Next
      state+1
    Case 8

      ForEach  p()
        Plot(p()\x,p()\y,p()\col)
      Next
      delay+9
      claus=1
      b=0
      For a=1 To 50
        Repeat
          LineXY(flower(a,b)\x,flower(a,b)\y,flower(a,b)\x2,flower(a,b)\y2,$ff00+$ff*flower(a,b)\fl)
          b+1
        Until flower(a,b)\x=0 Or b>98

        If Random(15)=1
          If Random(4)=1
            in$=Str(Val(in$)+1)
            flower(a,b)\x=flower(a,b-1)\x2
            flower(a,b)\y=flower(a,b-1)\y2
            flower(a,b)\x2=flower(a,b)\x+Random(20)-10
            flower(a,b)\y2=flower(a,b)\y-2-Random(4)
            flower(a,b)\fl=1
            Select Random(3)
              Case 0
                flower(a,b)\col=$ff66ff
              Case 1
                flower(a,b)\col=$1AF4E5
              Case 2
                flower(a,b)\col=$C0E93F
              Case 3
                flower(a,b)\col=$1643E9
            EndSelect
            b+1
            bstep=1
          EndIf
          flower(a,b)\x=flower(a,b-1-bstep)\x2
          flower(a,b)\y=flower(a,b-1-bstep)\y2
          flower(a,b)\x2=flower(a,b)\x+Random(10)-5
          flower(a,b)\y2=flower(a,b)\y-5-Random(10)
          bstep=0
        EndIf
        b=0
      Next

      For a=1 To 50
        Repeat
          If flower(a,b)\fl
            DrawFl(flower(a,b)\x2,flower(a,b)\y2,flower(a,b)\col)
          EndIf
          b+1
        Until flower(a,b)\x=0 Or b>98
        b=0
      Next
    Case 9
      delay+6
    Case 10
      state=1

    Default
      End
  EndSelect


  If start=1
    StopDrawing()
    start=0
  EndIf
  DisplaySprite(1,0,0)

Until KeyboardPushed(#PB_Key_Escape)
Bild
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Die große Erkenntnis

Beitrag von Kurzer »

Bisonte hat geschrieben:
xXRobo_CubeXx hat geschrieben:Warum sollte es umgekehrt sein wen man älter wird? Wegen Alzheimer?
Das Leben...

Man verändert sich und seine Denkweisen.... auch wenn man es nicht glauben will....
Das hat mit vergessen nicht wirklich etwas zu tun.
Ja, genauso erlebe ich das auch und so hatte ich es gemeint. Auch die persönlichen Prioritäten ändern sich im Laufe des Lebens und Wichtigkeit mancher Dinge, die einen früher beeindruckt und motiviert haben.

@Macros: Schöne Muttertagsdemo, gefällt mir. :allright: Ich hoffe sie konnte die Art der Arbeit, die da drin steckt, entsprechend nachvollziehen und honorieren.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Re: Die große Erkenntnis

Beitrag von Franky »

STARGÅTE hat geschrieben: ... und man fragt sich
Warum hab ich damals diese Vereinfachung nicht "gesehen"?
Ganz einfach: Nö. Mir ist völlig Klar, dass ich morgen eine Erkenntnis gewonnen habe, die ich heute noch nicht hatte. Leben ist lernen und neues Schaffen bringt Zerstörung.
STARGÅTE hat geschrieben: Hab ich möglicherweise "jetzt" etwas übersehen, was die Vereinfachung damals garnicht möglich machte?
... und wenn ja, warum habe ich das damals nicht ausreichend kommentiert? Ja, diese Frage nagt :mrgreen:
STARGÅTE hat geschrieben: Wie spät war es damals?^^
Nö, eher "wie früh war es damals?". Quelltexte spätabends sind immer besser als früh morgens. Daher hör ich mir auch gerne die Sprüche an vonwegen "Spätschichtler". :lol:
STARGÅTE hat geschrieben: Wie spät ist es heute?^^
Nö. Ich hab ja ne Uhr, aber dem Glücklichen schlägt keine Stunde und PB programmieren ist Glück pur :mrgreen:


Gegenfrage: Kennt ihr das "Ach, hätte ich das doch damals in einer anderen Sprache geschrieben", weil ihr es gern auf eine andere Plattform portieren würdet (Smartphone, Embedded System etc. etc.)? :wink:


Mfg

Franky
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Re: Die große Erkenntnis

Beitrag von ZeHa »

Ich kenne eher den folgenden Fall:

- Man schaut sich einen alten Code an und fragt sich "Wieso habe ich das denn SO gemacht?"
- Dann versucht man ihn umzuschreiben
- Dann startet man ihn und merkt, er funktioniert nicht mehr
- Dann versucht man, das umgeschriebene Stueck fuer Stueck zu korrigieren
- Auf einmal versteht man wieder ganz genau, wieso man das damals SO gemacht hat...
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Antworten