 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.08.2006, 11:50 Titel: |
|
|
Wenn du die Walzen-Daten (nettes Wort ) aber im Code speicherst, dann reicht es, das Programm einmal durch 'nen Disassembler zu jagen und ggf., falls du die Daten mit XOR oder ähnlichen Sachen verschlüsselt hast, anzupassen.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 30.08.2006, 13:14 Titel: |
|
|
Hallo
Ich sehe da auch keinen grossen Gewinn an Sicherheit, wenn die Walzen im Programm selbst gespeichert werden. Wenn man sie als Dateien ablegt, kann man dagegen ganz einfach einen neuen Satz Walzen erzeugen. Ausserdem vereinfacht das die ganze Sache ungemein.Das mit der Sicherheit ist meiner Meinung nach bei so einem Programm sowieso nur relativ. Für den Hausgebrauch wird es doch auch mit Walzen als Dateien reichen.
Aber gut - das ist natürlich deine Sache. Am Anfang hast du geschrieben:
Elvis hat Folgendes geschrieben: | Aber leider kann ich damit nicht viel anfangen, denn die Zahlen die ich überprüfe, sind völlig zufällig. |
Eine Walze ist für mich ein Ding, das jedem Eingangswert zwischen 0 und 255 genau einen Zufalls-Ausgangwert zwischen 0 und 255 zuordnet. Warum kannst du das nicht in ein Array packen? Die Indizes sind doch trotzdem fortlaufend. Das mit dem
Code: |
IF a = 1 THEN b = 1
IF c = 1 THEN d = 1
IF e = 1 THEN f = 1
IF g = 1 THEN h = 1 |
verstehe ich nicht ganz. Ein Walzen-Datensatz (die Variable "walze" steht für die Nummer der Walze) sieht bei mir z.B. so aus:
Code: |
ausgang(walze, 0) = 17
ausgang(walze, 1) = 189
ausgang(walze, 2) = 55
...
ausgang(walze, 255) = 106 |
Wenn du diese Datensätze unbedingt ins Programm selbst einbauen möchtest, könntest du sie, anstatt alles "von Hand" zu schreiben, vielleicht auch mit RND erstellen. Einen festen Startwert mit RANDOMIZE setzen, dann erzeugt RND ja immer die gleiche Reihe von Zufallszahlen. Diese Reihe könntest du dann als eine Art Walzendatei benutzen. Anstelle eines festen Startwerts könnte man den natürlich auch vom Benutzer eingeben lassen, als Zusatz zum Schlüsselwort. Das wäre noch "sicherer". So in dieser Art:
Code: | CLS
DIM walze%(255)
startwert = 3
RANDOMIZE startwert
FOR eingang = 0 TO 255
walze%(eingang) = -1
NEXT
FOR ausgang = 0 TO 255
DO
eingang = FIX(RND * 256)
LOOP WHILE walze%(eingang) > -1
walze%(eingang) = ausgang
NEXT
FOR eingang = 0 TO 255
PRINT USING "####"; walze%(eingang);
NEXT |
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 30.08.2006, 20:21 Titel: |
|
|
Die Idee mit RANDOMIZE gefällt mir sehr gut...
Ich wusste gar nicht, dass man RANDOMIZE auch so einsetzten kann - obwohl das ja eigentlich sehr logisch ist...
Du hast mich überzeugt!
EDIT:
Ich hab die Daten übrigens nicht per Hand eingetippt. Das wär ja Wahnisinn. Statdessen hab ich ein kleines Programm
den Code schreiben lassen
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 30.08.2006, 23:14 Titel: |
|
|
Inzwischen ist mir noch eingefallen, dass das mit dem RANDOMIZE auch geht, ohne die Werte vorher alle auf -1 zu setzen. Ich habe das Beispiel mal entsprechend abgändert. So könnte man 128 Walzen erzeugen, die auch gleich ASCII-Zeichen statt Zahlen als Ausgangswerte haben:
Code: | DIM walze(127, 255) AS STRING * 1
startwert = 3
RANDOMIZE startwert
FOR w = 0 TO 127
FOR ausgang = 1 TO 255
DO
eingang = FIX(RND * 256)
LOOP WHILE ASC(walze(w, eingang)) > 0
walze(w, eingang) = CHR$(ausgang)
NEXT
NEXT |
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
katerkarlo
Anmeldungsdatum: 01.09.2006 Beiträge: 8
|
Verfasst am: 01.09.2006, 06:38 Titel: |
|
|
dreael hat Folgendes geschrieben: | So wie ich herausspüre, geht es um die Unterbringung von beispielsweise Level-Daten u.ä.
QB (eigentlich jeder BASIC-Dialekt) bietet dafür normalerweise READ und DATA, aber wie bereits angesprochen, bist Du mit Datendateien wesentlich flexibler.
|
Elvis hat Folgendes geschrieben: | Wenn du dir meinen letzten Post durchgelesen hättest, wüsstest du, dass ich an einem Verschlüsselungsprogramm arbeite, bei dem ich wohl kaum Leveldaten speichern will und auch keine externen Dateien verwenden kann |
sicher das du mit READ&DATA vertraut bist? |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|