Langeweile, Partikeleffekte in 430 Zeichen

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
KeauHou
Beiträge: 133
Registriert: 23.06.2009 00:22
Computerausstattung: Q9550, GTX260, Corsair Dominator 4GB 1066mhz, 22" Asus 16:10
Wohnort: Vorm Monitor
Kontaktdaten:

Langeweile, Partikeleffekte in 430 Zeichen

Beitrag von KeauHou »

Mir war grad langweilig also habe ich versucht mit so wenig Zeichen wie möglich Partikel mit Gravitation darzustellen.
Das Ergebnis ist etwas unkonventionell :D

Code: Alles auswählen

OpenConsole():EnableGraphicalConsole(1):Structure o:x.f:y.f:e.f:f.f:EndStructure:Global a=25,b=10,Dim p.o(a):Macro i:p(x)\x=40:p(x)\y=b:p(x)\e=38.5+Random(35)/b:p(x)\f=b+Random(20)/b:EndMacro:For x=0 To a:i:Next:Repeat:ClearConsole():For x=0 To a:t.o\x=p(x)\x:t\y=p(x)\y:*p.o=@p(x):*p\x=2**p\x-*p\e:*p\y=2**p\y-*p\f+0.2:*p\e=t\x:*p\f=t\y:If *p\x<80 And *p\y<a:ConsoleLocate(*p\x,*p\y):Print("."):Else:i:EndIf:Next:Delay(a):ForEver
Habs in 430 Zeichen geschafft, aber viel weniger ist glaub ich nich drin xD
Vielleicht schafft es ja jemand mit weniger Zeilen^^

MfG
(der gelangweilte) KeauHou
Zuletzt geändert von KeauHou am 07.06.2010 01:30, insgesamt 4-mal geändert.
If x = 1 and x = 2
MessageRequester("!!!", "WTF")
EndIf
Es ist möglich!
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Langeweile, Partikeleffekte mit möglichst wenig code...

Beitrag von STARGÅTE »

Cool, auch wenns nicht gerade ein Trick oder Tip ist, so seine Partike-Engine zu erstellen :lol:
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
KeauHou
Beiträge: 133
Registriert: 23.06.2009 00:22
Computerausstattung: Q9550, GTX260, Corsair Dominator 4GB 1066mhz, 22" Asus 16:10
Wohnort: Vorm Monitor
Kontaktdaten:

Re: Langeweile, Partikeleffekte mit möglichst wenig code...

Beitrag von KeauHou »

Naja in der Beschreibung dieses Forums heißt es
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.

:P
If x = 1 and x = 2
MessageRequester("!!!", "WTF")
EndIf
Es ist möglich!
Benutzeravatar
Shadow-Gamer
Beiträge: 152
Registriert: 06.09.2009 13:31
Computerausstattung: NB: Intel P8700, Mobility ATI HD4650, 4GB, Win 7

Re: Langeweile, Partikeleffekte in 430 Zeichen

Beitrag von Shadow-Gamer »

ist richtig, man sollte sich sowas mal den ganzen tag angucken^^
Ich versuche ja nicht faul zu sein. :)
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Langeweile, Partikeleffekte mit möglichst wenig code...

Beitrag von Kurzer »

STARGÅTE hat geschrieben:Cool, auch wenns nicht gerade ein Trick oder Tip ist, so seine Partike-Engine zu erstellen :lol:
Aber als Consolenversion find ich's cool. Lustige Idee. :allright:
"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 2024: 56 Jahre.
Benutzeravatar
KeauHou
Beiträge: 133
Registriert: 23.06.2009 00:22
Computerausstattung: Q9550, GTX260, Corsair Dominator 4GB 1066mhz, 22" Asus 16:10
Wohnort: Vorm Monitor
Kontaktdaten:

Re: Langeweile, Partikeleffekte in 430 Zeichen

Beitrag von KeauHou »

Wens interessiert, hier mein Original aus dem die ich dann später die gekürzte Version gemacht hab:

Code: Alles auswählen

OpenConsole()
EnableGraphicalConsole(1) 
Structure o
  x.f
  y.f
  ox.f
  oy.f
  c.s{1}
  cl.i
EndStructure
Global Dim p.o(25)
Define x.i, t.o
Procedure i(i)
  p(i)\x = 38+Random(4) 
  p(i)\y = 10+Random(4)
  p(i)\ox = 40 + Random(10)/20 - Random(10)/20
  p(i)\oy = 12 + Random(10)/20 - Random(10)/10
  p(i)\c = Chr(65 + Random(25))
  p(i)\cl = Random(15)
EndProcedure
For x = 0 To 25:i(x):Next x
Repeat
  ClearConsole()
  For x = 0 To 25
    t\x = p(x)\x
    t\y = p(x)\y
    p(x)\x = 2*p(x)\x - p(x)\ox
    p(x)\y = 2*p(x)\y - p(x)\oy + 0.2
    p(x)\ox = t\x
    p(x)\oy = t\y    
    If p(x)\x < 80 And Int(p(x)\y) < 25
      ConsoleColor(p(x)\cl, 0)
      ConsoleLocate(Int(p(x)\x), Int(p(x)\y))
      Print(p(x)\c)
    Else
      i(x)
    EndIf
  Next x
  Delay(25)
ForEver
CloseConsole()
If x = 1 and x = 2
MessageRequester("!!!", "WTF")
EndIf
Es ist möglich!
Kevin
Beiträge: 236
Registriert: 11.06.2007 12:55

Re: Langeweile, Partikeleffekte in 430 Zeichen

Beitrag von Kevin »

hi,
nette idee :D
KeauHou hat geschrieben:...
Habs in 430 Zeichen geschafft, aber viel weniger ist glaub ich nich drin xD
Vielleicht schafft es ja jemand mit weniger Zeilen^^
...
hier mit 327 Zeichen:

Code: Alles auswählen

OpenConsole():EnableGraphicalConsole(1):Structure o:x.f:y.f:e.f:f.f:EndStructure:a=25:b=10:Dim p.o(a):With p(x)
g::ClearConsole():For x=0 To a:t.o\x=\x:t\y=\y:\x=2*\x-\e:\y=2*\y-\f+0.2:\e=t\x:\f=t\y:If \y<a:ConsoleLocate(\x,\y):Print("."):Else:\x=40:\y=b:\e=38+Random(35)/b:\f=b+Random(20)/b:EndIf:Next:Delay(a):Goto g:EndWith
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
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: Langeweile, Partikeleffekte in 430 Zeichen

Beitrag von NicTheQuick »

///Edit:
Hab's noch kürzer bekommen. Da war noch ein altes Relikt drin.

Ich hab's auf 362 Zeichen bekommen, inklusive Farbe und verschiedenen Zeichen:

Code: Alles auswählen

OpenConsole():EnableGraphicalConsole(1):Dim p.d(25,5):Macro q(k):p(i,k):EndMacro:Repeat:ClearConsole():For i=0 To 25:q(0)+q(2):q(1)+q(3):q(3)+0.09:If q(1)<25:ConsoleColor(q(5),0):ConsoleLocate(q(0),q(1)):Print(Chr(q(4))):Else:q(0)=38:q(1)=10:q(2)=Random(99)/40-1:q(3)=Random(99)/40-1:q(4)=65+Random(25):q(5)=Random(15):EndIf:Next:Delay(25):ForEver:CloseConsole()
Oder etwas übersichtlicher: (ohne Einrückung immer noch 362 Zeichen, da oben lediglich Chr(10) durch ":" ersetzt wurde)

Code: Alles auswählen

OpenConsole()
EnableGraphicalConsole(1)
Dim p.d(25,5)
Macro q(k)
	p(i,k)
EndMacro
Repeat
	ClearConsole()
	For i=0 To 25
		q(0)+q(2)
		q(1)+q(3)
		q(3)+0.09
		If q(1)<25
			ConsoleColor(q(5),0)
			ConsoleLocate(q(0),q(1))
			Print(Chr(q(4)))
		Else
			q(0)=38
			q(1)=10
			q(2)=Random(99)/40-1
			q(3)=Random(99)/40-1
			q(4)=65+Random(25)
			q(5)=Random(15)
		EndIf
	Next
	Delay(25)
ForEver
CloseConsole()
///Edit:
@Kevin:
Dein Beispiel zeigt bei mir nichts an.
Bild
Kevin
Beiträge: 236
Registriert: 11.06.2007 12:55

Re: Langeweile, Partikeleffekte in 430 Zeichen

Beitrag von Kevin »

NicTheQuick hat geschrieben: @Kevin:
Dein Beispiel zeigt bei mir nichts an.
hm verstehe ich nicht bei mir geht es
PMTheQuick
Beiträge: 630
Registriert: 05.05.2005 19:06

Re: Langeweile, Partikeleffekte in 430 Zeichen

Beitrag von PMTheQuick »

Bei mir geht Kevin's Lösung auch. Hier noch eine Variante von mir, nur mit Sternchen. Die Farben ändern sich zudem der Reihenfolge nach (1-15, 0 natürlich nicht, denn schwarz auf schwarz bringt nicht sehr viel...)
Code hat geschrieben:OpenConsole():EnableGraphicalConsole(1):c.f=1:Structure o:x.f:y.f:e.f:f.f:EndStructure:a=25:b=10:Dim p.o(a):With p(x)
g::ClearConsole():For x=0 To a:c+0.001:If c>15.5:c=1:EndIf:ConsoleColor(Round(c,2),0):t.o\x=\x:t\y=\y:\x=2*\x-\e:\y=2*\y-\f+0.2:\e=t\x:\f=t\y:If \y<a:ConsoleLocate(\x,\y):Print("*"):Else:\x=40:\y=b:\e=38+Random(35)/b:\f=b+Random(20)/b:EndIf:Next:Delay(a):Goto g:EndWith
386 Zeichen. Die Geschwindigkeit vom Farbendurchgang kann man dort festlegen, wo der Code fett hinterlegt ist. Und nein, ich weiss wie man einen Code Tag verwendet, doch nur in Zitaten kann man BB Codes benutzen ;)

Gruss
PMTheQuick
Antworten