Ein Spiel in C64 Basic programmieren: Pseudo3D Ansicht in Binärzahlen speichern -

  Рет қаралды 1,865

N3rdroom

N3rdroom

Күн бұрын

Пікірлер: 29
@Christian-Drackert
@Christian-Drackert 4 жыл бұрын
Wieder Genial gemacht. Mit PEEK & POKE nie wirklich was gemacht. Ach Dein Bild wirkt merklich besser.
@n3rdroom
@n3rdroom 4 жыл бұрын
Ja, ich hab noch ein bisschen in meine Kamera investiert, das ich sie als Webcam nutzen kann... :-D Ich hoffe ich kann den ganzen Binärkram einigermaßen unterhaltsam rüberbringen... ;-)
@Christian-Drackert
@Christian-Drackert 4 жыл бұрын
@@n3rdroom Mehr als dass. Machst du richtig Toll und mam merkt dass Du Programmiern kannst.
@Svarsmannen
@Svarsmannen 4 жыл бұрын
Das Problem bei deiner Abfrage war, dass "=" gegenüber "and" Priorität hat. 1 = 1 ergibt in Basic $FFFF bzw. -1, also eine 16-Bit Zahl bei der alle Bits 1 sind. Wenn du dann eine Zahl mit -1 verundest kommt wieder diese Zahl raus. Aber egal, schönes Projekt. Vielleicht sollte ich auch mal wieder was lustiges basteln.
@n3rdroom
@n3rdroom 4 жыл бұрын
Ich hab den Fehler dann ja noch gefunden... 😉 Wann hast Du das letzte mal was auf dem C64 programmiert? 🙂
@Svarsmannen
@Svarsmannen 4 жыл бұрын
@@n3rdroom Das dürfte über 20 Jahre her sein, und so wahnsinnig komplexe Sachen hab ich damals auch nicht gemacht, das auwendigste war wohl ein ASCII-Artilleriespiel, das ich aber nie fertig gemacht habe. Bin aber BASIC treu geblieben und haber über die Jahre kleinere Sachen in vb/vb.net gemacht.
@n3rdroom
@n3rdroom 4 жыл бұрын
@@Svarsmannen Ja, so über Ascii Games bin ich auch nie richtig hinaus gekommen... aber ich hatte immer Spaß! 😅
@maxmuster7003
@maxmuster7003 4 жыл бұрын
Gute Arbeit. Weiter so.
@maxmuster7003
@maxmuster7003 4 жыл бұрын
Ich warte gepannt auf die Folge wo es mit LDA und STA weiter geht. Bist du damit auch vertraut?
@n3rdroom
@n3rdroom 4 жыл бұрын
Nein noch nicht... Bleibe erstmal noch bei BASIC... ;)
@maxmuster7003
@maxmuster7003 4 жыл бұрын
@@n3rdroom OK, danke für dein Feedback.
@maxmuster7003
@maxmuster7003 4 жыл бұрын
Mann kann sich ein AND auch wie ein Sieb vorstellen, wo nur die Bits durch kommen, die in der AND-Maske angegeben sind. Alle anderen Bits die nicht angegeben sind kommen nicht durch das Sieb und sind blockiert, fallen weg und werden unberücksichtigt gelöscht und ausgefiltert. Das AND läßt sich daher auch zum Löschen bestimmter Bits verwenden. Es werden alle Bits gelöscht, die nicht in der Maske enthalten sind. Übrig bleiben nur die Bits, die im Wert und in der Maske stehen.
@maxmuster7003
@maxmuster7003 4 жыл бұрын
Ein Fullscreen-Editor der an jeder Stelle vom Bildschirm es erlaubt eine Befehlszeile zu übernehmen. Das vermisse ich am PC immer noch. Ach war das schön am C64er.
@n3rdroom
@n3rdroom 4 жыл бұрын
Es ist ein Segen... und ein Fluch! ;-)
@kackfass8893
@kackfass8893 4 жыл бұрын
In der bitsetzung kannst du nach dem and 1=1 das gleich 1 weglassen
@n3rdroom
@n3rdroom 4 жыл бұрын
Vielen Dank, den Tip bekam ich schonmal. ;-) Werde das im Zuge der nächsten Session ändern. ^^ Ich bin wahrscheinlich noch sehr im geschwätzigen Basic-Mode... :-D
@kackfass8893
@kackfass8893 4 жыл бұрын
@@n3rdroom ok.. 😀
@Wolfgang.-
@Wolfgang.- 3 жыл бұрын
Und noch was: 11:30 das z.B.: PEEK(828) AND 64 hätte gereicht (ohne Klammern und = 64); wenn das Bit nicht gesetzt ist, kommt 0 dabei raus also false, wenn das Bit gesetzt ist dann kommt 64 raus, also ungleich 0 und damit true. Du erklärst das ja auch bei 28:00 😃
@n3rdroom
@n3rdroom 3 жыл бұрын
Genau... manche Dinge fallen mir dann auch im Laufe der Videos auf... 😅
@Wolfgang.-
@Wolfgang.- 3 жыл бұрын
Bin jetzt bei deinem Dungeon Projekt gelandet; etwas spät, ich weiß auch, dass dies noch in Assembler umgesetzt wird. Aber man hätte ja die Unterprogramm Zeilen nach den Koordinaten der Blöcke bezeichnen können: 110,120,130 / 210,220,230 ... 410,420,430 oder vier REM Zeilen REM 159, 169, 164 usw. 😉
@n3rdroom
@n3rdroom 3 жыл бұрын
Hallo Wolfgang, ich kann Dir nicht ganz folgen. Wie meinst Du das mit den Zeilennummern? 🤔 Ich muss dazu sagen, das das komplette System nochmal umgeschrieben wird. Die Dungeondaten lieben dann in einem Array und nicht mehr in einem String. Dadurch ändert sich dann einiges noch... 🙈
@Wolfgang.-
@Wolfgang.- 3 жыл бұрын
​@@n3rdroom Der Text sollte eigentlich auch unter Teil 2, diesen Teil habe ich gerade erst gesehen, zwischendurch kam dein Kommentar. Also z.B hinten links ist Ebene 4 ganz links = Zeile 410, zweite Ebene Mitte = Zeile 220, ganz vorne rechts = Zeile 130 also erste Stelle Z-Ebene, 2 Stelle X-Ebene, 3 Stelle die Programmzeilen. Aber Du codierst das ja mit der Karte, dann brauchst Du ja nicht mehr die Hilfe. Ich hoffe das war jetzt verständlich 😃
@Wolfgang.-
@Wolfgang.- 3 жыл бұрын
410 420 430 310 320 330 210 220 230 110 🧙‍♂️ 130 Ich hoffe man erkennt den Held der Geschichte 😃
@sengir3937
@sengir3937 4 жыл бұрын
Wie du selber richtig bemerkst bedeutet 0=falsch, alles andere wahr. Deine Bitabfragen kannst du dann also folgendermaßen vereinfachen: IF PEEK(828) AND 1 THEN GOSUB...
@n3rdroom
@n3rdroom 4 жыл бұрын
Hallo Sengir, danke für den Tip! :-) Stimmt, da hätte ich auch mal selbst drauf kommen können... :-D Bau ich beim nächsten mal direkt um.
@maxmuster7003
@maxmuster7003 4 жыл бұрын
Bit 0, Bit 1, ...Bit 8..Was? Das sind schon neun. Verzählt.
@n3rdroom
@n3rdroom 4 жыл бұрын
psssst! ^^
@maxmuster7003
@maxmuster7003 4 жыл бұрын
@@n3rdroom Das kann schon mal passieren. Sonst eine hervorragende Arbeit. Und Fehler machen gehört auch zum Programmieren mit dazu.
@alexanderharringer1323
@alexanderharringer1323 7 ай бұрын
Ist zwar schon ein älteres Projekt, aber dennoch die Frage: WARUM? Warum umständlich mit PEEK und POKE arbeiten, anstatt stinknormalen BASIC-Variablen? Warum die Speicherstellen 828 und 829 bei jeder if-Abfrage erneut auslesen, anstatt das Auslesen einmal zu machen und den Wert in einer Variablen abspeichern? Warum erzeugst du die Strings für die Blöcke bei jedem Aufruf neu, anstatt dir zuvor konstante Stringvariablen anzulegen? (Dann würdest du dir auch die ganzen GOSUBs sparen, da du anstatt des GOSUB-Befehls einfach den PRINT-Befehl + die Stringvariable benutzen kannst, z.B. PRINT L1$) Hast du dir als Ziel gesetzt, das Programm möglichst langsam zu machen? Viel mehr Fragen bei den anderen Videos aus dieser Reihe ...
Retro MS-DOS Coding - Recreating the Iconic Award BIOS Screen
18:16
NCOT Technology
Рет қаралды 97 М.
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
VIC 20 Elite Preview (9 Jan 2025)
48:19
Aleksi Eeben
Рет қаралды 1,6 М.
C64 Basic Kurs - Teil 1 - Grundlagen
8:58
N3rdroom
Рет қаралды 64 М.
How I Built A LEGO Treadmill That Moves In EVERY Direction
18:06
Banana Gear Studios
Рет қаралды 1 МЛН
Структура файлов и каталогов в Linux
20:28
Aleksey Samoilov
Рет қаралды 434 М.
Aktien-Analyse: Das sind die Favoriten für 2025!
23:09
Moritz Hessel | Total Return Finanzen
Рет қаралды 32 М.
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН