Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Code kürzen
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 30.08.2006, 11:50    Titel: Antworten mit Zitat

verwundert
Wenn du die Walzen-Daten (nettes Wort grinsen) 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. zwinkern
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 30.08.2006, 13:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 30.08.2006, 20:21    Titel: Antworten mit Zitat

Die Idee mit RANDOMIZE gefällt mir sehr gut... lächeln
Ich wusste gar nicht, dass man RANDOMIZE auch so einsetzten kann - obwohl das ja eigentlich sehr logisch ist... geschockt mit dem Kopf durch die Mauer wollen
Du hast mich überzeugt! zwinkern Ja!

EDIT:
Ich hab die Daten übrigens nicht per Hand eingetippt. zwinkern Das wär ja Wahnisinn. Statdessen hab ich ein kleines Programm
den Code schreiben lassen lachen


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 30.08.2006, 23:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
katerkarlo



Anmeldungsdatum: 01.09.2006
Beiträge: 8

BeitragVerfasst am: 01.09.2006, 06:38    Titel: Antworten mit Zitat

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 Kopf schütteln


sicher das du mit READ&DATA vertraut bist?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
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.

 Impressum :: Datenschutz