Ich frage mal einfach. Wie lange braucht das Programm um den Bildschirm zu füllen? Mit Vice habe ich jetzt 20 Minuten verbracht und das ist dabei erst erschienen.
Hallo Besucher, der Thread wurde 19k mal aufgerufen und enthält 103 Antworten
letzter Beitrag von dr.nolle am
BASIC-Programme - "wirbleibenzuhause"
- Snoopy
- Erledigt
-
-
Antwort: In Vice bei >1700% Geschwindigkeit dauert es etwa 15 Minuten. Danach noch 4x Bildneuaufbau. Hinterher sollte man bei der Rechengeschwindigkeit kein Epileptiker sein.
WARNUNG! Geschwindigkeit rechtzeitig runtersetzen..
-
Wieder was Grafisches:
Macht so ein Bild:
Das Faszinierende daran ist, dass das Schachbrett durch die SGN-Funktion entsteht! Mit dem Quotienten am Ende der Zeile 130 steuert man, wie klar das Schachbrett sichtbar wird. Im Originallisting war da gar kein Quotient (also: h=1-h), was ein erheblich vernebelteres Ergebnis liefert.
Arndt
-
VICE sagt "Syntax Error in 100"...
Edit: Erledigt
-
VICE sagt "Syntax Error in 100"...
Ist eben kein Basic 2.0
-
VICE sagt "Syntax Error in 100"...
Das ist auch kein Std Befehl in Basic V2. Könnte Simon´s Basic oder so sein.
-
Das ist auch kein Std Befehl in Basic V2. Könnte Simon´s Basic oder so sein.
Lest ihr hier nicht von Anfang an? Sonst kann ich mir eure Posts nicht erklären… (hutti und larsvegas).
Arndt
-
Achso, das ist ein anderes Basic... Zwischendurch war ja mal ein Programm in C64 Basic drin, da war ich verwirrt.
-
VICE sagt "Syntax Error in 100"...
schon mit "SimonsBasic" versucht ?
-
Das ist auch kein Std Befehl in Basic V2. Könnte Simon´s Basic oder so sein.
Lest ihr hier nicht von Anfang an? Sonst kann ich mir eure Posts nicht erklären… (hutti und larsvegas).
Arndt
Nein, gerade diese Seite beim Lesen endeckt. Und da er fragte was das für ein Fehler sei...
-
Hier wieder was kurzes Grafisches (also Simons' Basic bzw TSB starten
CodeIn den REM-Zeilen steht schon, wie man damit spielen kann: je größer der Nenner in Zeile 130 desto kleiner die Kreise, und wenn der Nenner zusätzlich ein Vielfaches von 12.5 ist, variieren die Zentren der Kreise im Aussehen. Hier ein Beispiel mit kleinem Nenner:
Bei dem Programm geht es eigentlich darum, zu zeigen, wie Interferenzen entstehen (also die etwas schwächer sichtbaren Kreise). an den Interferenzstellen überlagern sich die konzentrischen Ausläufer von den jeweiligen Nachbarzentren (von denen man mehr sieht, wenn der Nenner größer wird).
Arndt
-
Lest ihr hier nicht von Anfang an?
Da steht:
Für alle, die nicht unbedingt an einem Wettbewerb teilnehmen wollen, sondern in diesen Zeiten "Zuhause" einfach "nur mal so" was in BASIC programmiert haben, ist dieser Thread gedacht. Einfach die BASIC-Programme hier einstellen und mehr nicht.
Und die Rubrik ist: Forum64 > Coder_unter_sich > Programmieren > BASIC
Ich finde also, es ist nicht verkehrt, bei jedem Listing (zukünftig) dazuzuschreiben, um WELCHEN Dialekt es sich handelt. Das vermeidet Missverständnisse (wie sie ja gerade auftraten).
Davon ab entsteht hier aber eine schöne Sammlung von Basic-Programmen mit interessantem, meist grafischem, Output. Quasi alles Demos für Faultiere und Schnecken.
-
Das Programm nutzt vier Farben und erzeugt eine Animation.
Das ist ja ober-cool!!!
Arndt
Ja, in Farbe sieht's ober-cool aus! Ich habe auch mit den Kreisen weiter rumgespielt und ebenfalls eine farbige Fassung erstellt, die sich bewegt und die Farben animiert: https://www.shadertoy.com/view/wssyzl
(Ich weiß, es ist kein BASIC 2.0, aber es baut auf dem Algorithmus aus dem Basic-Programm auf.)
-
ebenfalls eine farbige Fassung erstellt, die sich bewegt und die Farben animiert
Wow!
Ich sag's noch mal: Die Progs sind aus dem Buch "Spiele mit Computergrafik" von Norbert Treitz, nicht von mir (nur hier und da angepasst). Von Mathematik habe ich keine Ahnung, daher käme ich nie auf solche Sachen... Aber schön sind sie!
Arndt
Nachtrag zu Post #31: Je größer der Wert im Nenner, desto größer die Kreise. Im Bildbeispiel war der Nenner, glaub ich, 1000.
-
Das nenn ich mal echt matte Mathe-Mystik.
Schönen Gruß. -
Da wollte ich gerade ganz spontan einige, wie ich finde, schöne Sachen hier im Thread liken, darf aber nicht. Dann sage ich es so: Es sind, wie ich finde, sehr schöne Sachen vorgestellt!
-
Noch eins aus dem Buch. Hier geht es darum, dass Punkte, die an einer Stelle des Bildschirms "abgescannt" werden, an anderer Stelle zu ganz was Neuem wieder zusammengebastelt werden können. Das Programm ist auf Seite 81 im Buch, ich hab es aber erheblich umgeschrieben, erstens, damit es flüssiger abläuft (im Original tut sich zwischen den Aktionen scheinbar lange Zeit nichts), und zweitens, damit es etwas (ein ganz kleines bisschen) schöner aussieht. Das Ganze ist wieder in Simons' Basic und ich erkläre unten noch ein paar Sachen zum Programm.
Code- 50 c=0:x=82:y=30:o1=x-5:o2=x-4
- 100 colour11,12:hires0,0:multi0,0,0
- 110 textx,y,"{ctrl-b}Super",3,2,12
- 111 textx,y+20,"{ctrl-b}Forum",3,2,12
- 112 textx,y+40,"{ctrl-b}hier!",3,2,12
- 115 forx=5to65:fory=6to70
- 120 low col15,15,15
- 121 a=test(o2+x,99-y)
- 122 ploto1-x,99-y,a
- 123 ploto2+x,100+y,a
- 124 low col11,11,11
- 125 ploto1-x,100+y,a
- 130 next:c=c+1:ifmod(c,7)=0thenx=x+5
- 140 next
- 300 poke198,0:wait198,1
- 350 fcol0,0,40,25,0
Es geht hier also um den Text, der in den Zeilen 110 bis 112 rechts oben auf den Screen geschrieben wird (CTRL-B macht Groß-Kleinschrift an). Er erscheint da in Farbe 3 (die dritte Farbe des Befehls MULTI, also schwarz), in Größe 2 (doppelt hoch) und im "Abstand" 12 (Entfernung vom Anfang eines Buchstabens zum nächsten). Das vorweg, damit die Scanroutine zwischen Zeile 115 und 140 klarer wird.
Der Text ist 5 Zeichen breit, 5*12 ist 60, deshalb in Zeile 115 die Werte für X. O1 und O2 legen den Ort fürs Scannen und Wieder-Ausgeben des "bearbeiteten" Pixels fest. Links und unterhalb des Originaltextes erscheint der Test gespiegelt (links an der senkrechten Achse, unten an der waagerechten). Diese beiden sollten sich farblich abheben, deshalb der Befehl LOW COL in 120 (Punkte ab jetzt in Farbe 15 setzen). A in Zeile 121 ist entweder 0 oder 1. 0 ist Hintergrund (die zweite Farbe bei COLOUR, also 12, mittelgrau) und 1 Vordergrund (die erste Farbe bei LOW COL). Die dritte Ausgabe (links unten) ist das auf den Kopf gestellte Original, hier in Farbe 11 (Zeile 124).
Damit es schneller geht, hab ich einen Zähler für die waagerechten Pixel eingeführt, der dazu dient, die Lücken zwischen den Buchstaben zu überspringen. Leider ist das kleine "m" 7 Pixelbreit, daher in Zeile 130 die Abfrage, wann das siebte Pixel kommt, um dann den Scanzeiger X einfach 5 weiter zu setzen (die Zeichen sind ja im 12er-Abstand).
Zeile 350 färbt den Textbildschirm ein. Der bekommt nämlich durch den Befehl MULTI andere Farben. Ach ja, dreimal 0 bei Multi deswegen, weil die anderen beiden Farben egal sind, sie werden nicht verwendet.
Und so sieht das dann aus:
Arndt
-
Hallo Leute,
hier noch ein kleines Programm in C64-Basic.
Fraktale Landschaft
Die Kurzversion:
und die schnelle Version:
Code- 10 poke56,160:clr:dimc(61e2):clr:poke56,88:clr:sys58648:v=53248:u$=chr$(145)
- 20 pokev+33,.:pokev+32,.:printchr$(5)
- 30 a=24576:d=504:g=199:z=.:dimy(g),h(7):s=1:fori=.to7:h(7-i)=s:s=s+s:next
- 40 fori=atoa+7680step320:printi;u$:forj=itoi+7:y(z)=j:z=z+1:next:next
- 50 pokev+17,59:pokev+24,7*16+8:poke56576,198
- 60 printchr$(147):z=1:i=8:gosub200
- 70 forx=.to319:e=xandd:f=h(xand7)
- 80 fory=.tog:if(xandy)=.thenb=e+y(y):pokeb,peek(b)orf
- 90 next:next:gosub300:z=.
- 100 fori=15to1step-1:gosub200:pokev+24,16*(6+z)+8:z=1-z:ifpeek(198)then120
- 110 next:goto100
- 120 gosub300:wait198,1:poke56576,199:sys58648:poke56,160:clr:poke198,.:end
- 200 forj=(22+z)*1024toj+999:pokej,i:next:return
- 300 fori=.to96:pokev+32,i:next:poke198,.:return
- 400 rem 2020 by neptun
- 410 :
Gruß,
Neptun
-
Könnte man das erstellte Material, mit den Listings, und Programmen, in eine .D64 packen, und immer wieder aktualliesieren, und in die c64 Wolke stellen ?
Sonst geht das schnell wieder verloren, wen man das selber wieder breuchte.
Nur so mal als Gedanke.
Brotscheibe
-
hier noch ein kleines Programm in C64-Basic.
Sierpinski-Dreiecke! (Oder auch Pascal-Dreiecke) So schön (und bildschirmfüllend) hab ich die noch nicht gesehen.
Arndt