Welche Zahl gibt stets das folgende Programm aus?
Da bin ich mir nicht sicher... ich würde auf 0 (Null) tippen.
Welche Zahl gibt stets das folgende Programm aus?
Da bin ich mir nicht sicher... ich würde auf 0 (Null) tippen.
Ich mache nicht mit, da ich die Lösung schon kenne.
GoDot Wahrscheinlich war das die Intension gewesen... aber Step-1 fehlt nunmal...
Vielleicht zu einfach
Hmm, mag sein, aber Deine Fallei n Zeile 120 ist tückisch ![]()
Ich stelle in den Raum: es werden die Zahlen 10 bis 20 ausgegeben.
Mal die Frage an Alle, die schon obfuskierten Code hier zum Rätseln aufgegeben haben: wir lange habt Ihr eigentlich gebraucht, bis das Ganze fertig war?
berni Das ist nicht schlecht!
Wer das Programm ausführen will: Anbei die prg-Datei.
Öh, wie kriegt man die jetzt in VICE rein?
Datei öffnen?
Smart open
Bitte melde dich an, um diesen Link zu sehen. liefert Werte zwischen 0.0 (inklusive) und 1.0 (exklusive) . Für die Zeile 3 kann der Wert von C durchaus abgeleitet werden.
Zufall spielt eine Rolle. Farben ändern sich aber keine. Was anderes ist zufällig.
Edit: Wegen des Sinus: Der hat ja auch nur einen bestimmten Wertebereich...
Das habe ich eben gerade nicht genau im Kopf, ob der RND wirklich excl. 1 liefert. Aber selbst wenn, der beschränkte Wertebereich des Sinus im Zusammenhang mit zwei Zufallszahlen... die Idee mit dem Farbwechsel ist falsch, das gebe ich zu. Mein Jägerinstikt ist geweckt, ich gehe mit Euch mal meine möglicherweise falschen Gedanken durch.
Iim Endeffekt haben wir einen POKE 53270. Der RND in C wird ja um 6 in Zeile 2 erhöht und in Zeile 3 werden 6 wieder abgezogen, also bleibt der RND übrig. Nachdem die Adresse ein INT ist, kann man die Variable C also komplett raus kürzen. Eine Sorge weniger.
Nachdem $D016 benutzt wird, liegt ein Verdacht nahe: das X-Scrolling.
Benutzt wird 106 = %01101010, das heißt, das Bit für 38 Zeichen Breite ist gesetzt. Durch den RND und SIN bleibt der Wertebereich von 106 bis 109 übrig, also X-Scrolling.
Die Zeile 2 lässt sich kürzen auf
2 PRINTMID$(A$,B+5,1)"{RVSON} {LEFT}";
Die Variable C habe ich ja bereits geistig aus dem kompletten Programm gekürzt, deshalb bleibt nur das übrig.
Für B dürften nur diese 4 Werte in Frage kommen: {LEFT}{UP}{RIGHT}{DOWN}
Jetzt komme ich zum Ergebnis, dass sich irgendwann der ganze Bildschirm mit Revers-Space füllt und gleichzeitig hin- und her geschüttelt wird.
hexfile Eigentlich ist das kaum vorhersehbar wegen den beiden RND, selbst C kann dabei ja 1 sein (C kann also in Zeile 3 nur 6 oder 7 sein). Auch den Sinus auf dem Papier vorherzusagen, ist eigentlich unmöglich.
Bei dem Rätsel kann man eigentlich nur auf ein Bauchgefühl hoffen. Mein Tipp daher: ein Zeichen (Hashtag) ändert fröhlich die Farbe...
Na dann sag doch gleich, dass es um CHRGET ($0073) und/oder CHRGOT ($0079) geht
Hab' ich doch - steht im Spoiler - hast du den übersehen?
Ne, ich hab das schon gesehen, aber als Assemblerprogrammierer verwirrt mich Deine Umschreibung eher ![]()
OK. Dann löse ich mal auf. Sollte ja ohnehin nur ein kurzes Intermezzo sein und ich freue mich auch schon auf neue Knobeleien. Wer ist denn jetzt dran?
Na dann sag doch gleich, dass es um CHRGET ($0073) und/oder CHRGOT ($0079) geht ![]()
Ein neues Wort gelernt (Obfuskaktion) - Super
Wenn man heutzutage Software im closed source entwickelt, ist Obfuskierung ein ganz wichtiges Mittel, dass einem seine eigene Software nicht unter dem Arsch weg geklaut wird...!
Im Programmmodus geht das auch:
Ja, klar! Zeiger verbiegen sollte unabhängig davon sein. Nur blöd, wenn das Basic-Programm jemand durch den Compiler jagt, dann funzt das wahrscheinlich nicht.
Ich musste mir jetzt doch mal die Geschichte von der Zeropage her anschauen. In 122/123 ($7a/$7b) steht der Zeiger auf den nächsten, auszuführenden Basic-Befehl.
Was bedeutet, dass die beiden Varianten von hexfile exakt die Gleichen sind. Sehr geiler Hack, muss ich schon sagen ![]()
Ich führe das absichtlich nicht weiter aus...
Folgende Varianten besipielsweise:
:::poke53280,7:poke53280,0:poke122,2 oder ::::poke53280,7:poke53280,0:poke122,3 ...
(ein Muster sollte sich erkennen lassen...)
Normal sollte damit mein Jägerinstikt geweckt sein
Aber das könnte Betriebssystem-mäßig so weit gehen, dass es schon fast nicht mehr nachvollziehbar sein kann.
clr:poke53280,7:poke53280,0:poke122,1
Das gefällt mir. 3 POKEs und trotzdem erst mal kniffelig.
Wäre ich natürlich nicht drauf gekommen, wenn ich es nicht ausprobiert hätte.
Geht mir auch so! Deswegen halte ich mich auch raus ![]()
berni das ist fies, da muss man ja erst mal suchen, was in 122 passiert ![]()
Naja, zu viel der Ehre GoDot ... ich war allenfalls auf dem richtigen Weg mit einem weihnachtlichen Motiv. Von Sternen war ich aber auch sehr weit weg. War zugegebenermaßen aber auch nur ein Schuss aus der Hüfte aufgrund der Inhalte des w$().
Übrigens: die Zeile 130 hatte ich komplett ignoriert, denn im Block bis 170 hat die absolut keinen Zweck (erst später dann).
recht schwere Kost
Ich bin schon zufrieden, wenn einer rausfindet, was 110 bis 170 machen.
(Der Rest ist Anwendung davon.)
Arndt
Also, wenn ich mich nicht verrechnet habe, kommt das in den Strings in den Zeilen raus:
w1$ = "*********"
w2$ = "* "
w3$ = " *"
w4$ = "* * *"
w5$ = "* * *"
w6$ = "***"
w$(1) = "* "
w$(2) = "* * *"
w$(3) = "* * *"
w$(4) = "***"
w$(5) = "*********"
Alles anzeigen
Dementsprechend würde ich jetzt mal vermuten, dass da ein Weihnachtsbaum dabei raus komt...
Hab ich alle erschlagen?
Das wollte ich nicht!
Arndt
Naja, das ist schon recht schwere Kost, um auf dem Papier die Funktion vorherzusagen ![]()