Diese muss das Spielfeld von unten links nach oben rechts abscannen.
Geht auch von unten rechts nach oben links? ![]()
Arndt ![]()
Es gibt 1.089 Antworten in diesem Thema, welches 110.088 mal aufgerufen wurde. Der letzte Beitrag (
Diese muss das Spielfeld von unten links nach oben rechts abscannen.
Geht auch von unten rechts nach oben links? ![]()
Arndt ![]()
Geht auch von unten rechts nach oben links?
Ja, müsste gehen. Wichtig ist nur von unten nach oben. Sonst funktioniert's nicht nach Plan.
Frage in die Runde.
Programmiert jetzt Arndt dein Spiel Omega. ![]()
Und du bist der Projektleider, der dann sage wann es fertig sein muß.
Denn du willst ja schließlich noch das Ostergeschäft mitnehmen für die Spielehre.![]()
Programmiert jetzt Arndt dein Spiel Omega.
Nein.
Ich helfe bei einem Programmierproblem. Wie alle anderen hier auch.
Arndt
Drachen: Ich habe ja im Threadtitel schon darauf hingewiesen, dass es sich hier um eine "Collaboration" handelt. D.h. wenn jemand etwas Sinnvolles beisteuern kann, dann benutze ich das.
Außerdem möchte ich auch anderen eine Chance geben, an einem großen und namhaften Spieleprojekt mitzuwirken. Und zwar einem, das die Massen begeistert und den Hau-den-Lukas durch die Decke schießen lässt.
Wann genau "Demon Block" (Arbeitstitel) offiziell erhältlich sein wird, ist noch unklar. Ein Release vor Ostern ist aber unwahrscheinlich. Allein die Prüfung durch die USK braucht ja Zeit.
Programmiert jetzt Arndt dein Spiel Omega.
Und du bist der Projektleider, der dann sage wann es fertig sein muß.
Das hat Omega hier schon geklärt, wie er sich das vorstellt: ![]()
Bitte melde dich an, um diesen Link zu sehen.
Das hat Omega hier schon geklärt, wie er sich das vorstellt:
Als erfahrener und vielfach ausgezeichneter Maschinencode-Programmierer könnte ich das natürlich auch alleine machen. Aber wir bei Omega-Productions halten uns an den Leitspruch "Kollaboration kodiert Erfolg - gemeinsam schaffen wir Unmögliches!"
Ich habe ja im Threadtitel schon darauf hingewiesen, dass es sich hier um eine "Collaboration" handelt.
Ach so! Ich dachte, das stünde für "Collabieren"! ![]()
Aber was hältst du denn hiervon: Neue Version im Anhang (hoffentlich diesmal ohne Abspeicherprobleme...) ![]()
Arndt
Aber was hältst du denn hiervon...
Das sieht auf den ersten Blick sehr gut aus. ![]()
Ich werde das heute Abend aber noch genauer testen und darüber nachdenken.
Kannst du mal genau beschreiben, was die neuen Befehle machen? Warum zum Beispiel hast du diese i-Schleife drin?
Je mehr Informationen du gibst desto besser.
Bitte melde dich an, um diesen Anhang zu sehen.
Alter Schwede! Das ganze Ding ist nur 493 Bytes groß. ![]()
Hier mal ein kleiner Demo-Testlevel.
Laden und Starten mit:
Gesteuert wird mit Joystick in PortBitte melde dich an, um diesen Link zu sehen.. Mit Feuer selektiert man einen Spielstein. Dieser kann nach links und rechts gezogen werden. Wenn unter einem Stein kein Boden ist, fällt er runter. Man kann einen selektierten Stein durch erneutes Drücken von Feuer wieder ablegen. Wenn sich mehrere gleiche Steine horizontal oder vertikal berühren, lösen sie sich auf. (Außer bei Glasblöcken = schraffierte blaue Blöcke).
Wer von euch ist klug genug, diesen Level zu lösen? Ich wette keiner!
EDIT: Um den Level neu zu starten, muss man RUN/STOP+RESTORE drücken und nochmal RUN eingeben.
EDIT2: Ha! Sieh nur, wie du dich abmühst, armseliger Sterblicher! Dein Verstand ist so stumpf wie ein rostiges Messer.
Ich liebe solche Art von Puzzles! Woher wusstest du das? ![]()
Um den Level neu zu starten, muss man RUN/STOP+RESTORE drücken und nochmal RUN eingeben.
Bau eine Restart-Taste ein, nicht so eine Gewaltmethode...
Arndt
Wann kommt das Spiel endlich raus? ![]()
Bau eine Restart-Taste ein, nicht so eine Gewaltmethode...
Ach, ich bitte dich. Das ist doch nur ein total unfertiger Prototyp. Da ist noch viel dran zu machen. Ehrlich gesagt, weiß ich noch nicht einmal, was in dem Spiel vorkommen soll. Ich wollte nur mal zeigen, wo die Reise ungefähr hingeht. Ins Puzzle-Land.
Wann kommt das Spiel endlich raus?
Zuerst müssen wir nochmal über die Extension reden. Ich habe da noch so ein paar Anpassungswünsche.
Demon Block coming 2024!
Ein Zähler, weiß ich doch!
Nein, nein. Lass mich erstmal kurz überlegen. ![]()
Bitte melde dich an, um diesen Anhang zu sehen.
Einer übrig. Mehr schaff ich nicht. Das ist nicht lösbar, oder?
Arndt
Ha! Sieh nur, wie du dich abmühst, armseliger Sterblicher! Dein Verstand ist so stumpf wie ein rostiges Messer. ![]()
Demon Block coming 2024!
Warum zum Beispiel hast du diese i-Schleife drin?
Jedes X!STEP setzt schwebende Steine um eins tiefer. Die Schleife würde eine hypothetische Lücke von fünfmal Luft unter dem untersten Stein überbrücken (und durch X!CLR in der Schleife zwischendurch auch abräumen). Da das so schnell geht, spielt es keine Rolle, wie oft X!STEP über das Spielfeld wirbelt. Ist also eine Art "Sicherheitsschleife".
Arndt
PS: Ist übrigens ein schönes Beispiel, warum ich diesen Befehl X! genannt und für Extensions reserviert habe.
Da fällt mir noch ein, dass deine Liste der freien Bereiche in TSB noch ergänzt werden muss: Wenn MEM aktiv ist, hast du den normalen Text-Screen ab $0400 zur freien Verfügung: 1KB zusätzlich!
Arndt
Hier meine Anpassungswünsche:
x!step
Der Befehl scannt ja das gesamte Spielfeld ab. Könntest du dabei zählen, wieviele Spielsteine es noch auf dem Spielfeld gibt (keine Glasblöcke mitzählen) und dies in Speicheradresse 828 hinterlegen? Das wäre nützlich, um festzustellen, ob ein Level gelöst wurde.
x!clr
Ich möchte, dass die Spielsteine nicht einfach vom Spielfeld verschwinden, sondern sich mit einer kleinen Animation auflösen. Evtl. möchte ich dabei später auch einen Ton abspielen, damit das Spiel nicht so still ist. Im Moment gibt es aber keine Möglichkeit, eine Interaktion zwischen dem Assembler-Programm und dem TSB-Programm zu realisieren.
Ich habe mir das deshalb so vorgestellt: Der Befehl x!clr löscht selbst keine Spielsteine vom Spielfeld. Stattdessen schreibt er die Koordinaten der zu löschenden Spielsteine in den Kassettenpuffer ab Adresse 829 (damit der Rückgabewert von x!step nicht verloren geht). Im Kassettenpuffer haben wir 191 Bytes zur Verfügung. Das reicht also nicht, um die Koordinaten als x-Wert und y-Wert in getrennten Bytes zu hinterlegen. Dazu bräuchte man theoretisch bis zu 288 Bytes.
Wenn man aber die Felder von oben links nach unten rechts durchzählt, dann braucht man nur 1 Byte für ein "Koordinatenpaar".
Bitte melde dich an, um diesen Anhang zu sehen.
Und so könnte das im Kassettenpuffer aussehen (wenn 3 Steine zum Löschen gefunden wurden):
Speicheradresse 193 = erstes zu löschendes Feld (0-143)
Speicheradresse 194 = zweites zu löschendes Feld (0-143)
Speicheradresse 195 = drittes zu löschendes Feld (0-143)
Speicheradresse 196 = 255 (= Ende-Kennung)
Wenn mehr Felder zum Löschen gefunden wurden, dann muss die Liste entsprechend verlängert werden. Das Ende ist immer durch die Ende-Kennung 255 erkennbar.