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:

Variablenverschlüsslung?
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 23.09.2005, 17:34    Titel: Variablenverschlüsslung? Antworten mit Zitat

Hallo Leute.

Angenommen ich habe meine Variablen so gemacht, um sie in eine Variable zu bekommen:

Code:
ubertragen=sp(nummer).x+sp(nummer).y*10000+sp(nummer).leben*100000


Wie bekomme ich dann die x koordinate, die y koordinate und die Leben raus?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 23.09.2005, 20:17    Titel: Antworten mit Zitat

sorry... ich kenn mich da jetzt ÜBERHAUPT nicht aus... kannst du das bitte nochmal posten? (bin ich der einzige ders ned checkt?) happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 23.09.2005, 21:01    Titel: Antworten mit Zitat

@psygate: Also ich kapiers ...

Wie stellst du dir das bitte vor? Ich sehe da theoretisch und matematisch keine Lösung durchgeknallt

Ich würde jede Variable einzeln Verschlüsseln lächeln
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 23.09.2005, 21:08    Titel: Antworten mit Zitat

ich nehme stark an, du möchtest mehrere werte in eine variable schreiben, in dem du die werte mit verschiedenen 10er potenzen multiplizierst.

oder einfach:
Code:
 ergebnis = (variable1 * 1) + (variable2 * 1000) + (variable3 * 100000)


seh ich das richtig?

du bekommst die werte wie folgt zurück:
Code:

variable1 = (ergebnis)                    mod 1000
variable2 = (ergebnis - variable1 *    1) mod 1000000
variable3 = (ergebnis - variable2 * 1000)


ich hoffe, das ist verständlich.
AAAAAAAAAAAAaaaaber:
das ganze funktioniert nur theoretisch - computer speichern werte a) in Dualer Form (also nicht im 10er-System sondern im 2er-System) und b) werden so große Zahlen, wie deine Ergebnisse in Gleitkommadarstellung gespeichert ( also: die ersten was-weiß-ich-nicht-wievielen Ziffern, und wo das Komma hin muss - 5,4e3 wäre zum Beispiel die Zahl 5400 - 5,4 mit dem komma drei weiter rechts), was aber nochmal ne gewisse ungenauigkeit bedeutet.

Wenn ich dir nen rat geben darf: speichers anders.
mir will nämlich ehrlichgesagt auch nicht so recht in den kopf, was daran jetzt verschlüsselt sein soll. zugegeben, nach speicherung in datei lässt sich der wert nicht mehr ganz so einfach direkt auslesen, aber der aufwand, durch vergleichen von speicherständen auf die richtige stelle zu kommen, ist minimal.

Teuflische Grüße
Lutz böse Ifer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 23.09.2005, 21:13    Titel: Antworten mit Zitat

Na ja, der springende Punkt ist, das man übers Netzwerk nicht so viel übertragen kann, ohne das es laggt wie sau. Also mach ichs so!
Kann man das mit Mod in FB einfach eintragen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d.j.peters
Gast





BeitragVerfasst am: 24.09.2005, 00:29    Titel: Antworten mit Zitat

Wenn es noch nicht gesagt wurde.
Bei der Art Deiner "Kompremierung" darf x und y nie negativ sein.
Es ist auch fraglich ob sich es lohnt 4 oder besser direkt 6 Bytes zu übertragen.

Grüsse Joshy
Code:
option explicit
const numofplayers = 10
const lastplayer   = numofplayers -1
type SPIELER
  x          as short
  y          as short
  leben      as short
  transvalue as integer
end type
dim as SPIELER players(numofplayers)
dim as integer i,tmp,x,y,leben
for i=0 to lastplayer
  with players(i)
    .x    =rnd * 1000
    .y    =rnd * 1000
    .leben=rnd * 5
    .transvalue = .leben * 1000000 + .y * 1000 + .x
    print "player:";i , .x , .y, .leben
  end with
next
print
for i=0 to lastplayer
  with players(i)
    tmp = .transvalue
    leben = tmp \ 1000000
    tmp = .transvalue - leben * 1000000
    y = tmp \ 1000
    x = tmp - y * 1000
    print "player:";i,x,y,leben
  end with
next
Nach oben
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 24.09.2005, 11:43    Titel: Antworten mit Zitat

die menge der übertragenen datein hat nichts mit lag zu tun. lag wir bestimmt durch die art deiner verbindung, wieviele jumps es bei diversen weiterleitungen machen muß, die länge der leitung etc. etc.
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 24.09.2005, 13:07    Titel: Antworten mit Zitat

@DJPeters:
Ich hab mir auch gedacht, ich teile einfach die Variablen durch 10000 oder was auch immer, und dann hab ichs. Aber: Angenommen ich übertrage 1 und 99, teile dann 199 durch 100, dann kommt ja 2 raus, nicht 1. Das könnte man zwar dadurch bekämpfen, das man immer eine 0 zwischen die einzelnen Zahlen macht, dadurch würde aber die Variable so groß werden, das sie kein Integer mehr wäre(glaube ich zumindest).

Das das lag an der Verbindung liegt stimmt, aber wenn es über DSL laggt(und nebenbei manchmal falsche Daten überträgt), aber übers Heimnetzwerk klappt, dann ist denke ich irgendwas falsch. Ich poste hier einfach mal den Code, wäre schön wenn mir einer den Fehler, bzw. Verbesserungsmöglichkeiten sagen könnte:
http://fb.exp-soft.de/fbnp/?view=51
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 24.09.2005, 13:30    Titel: Antworten mit Zitat

Dann schreib halt
Code:

wasweissich = 199 mod 100


jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 24.09.2005, 14:57    Titel: Antworten mit Zitat

Aber wenns, wir marzec sagt, gar nicht daran liegt, dann hilft das auch nicht...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 24.09.2005, 15:14    Titel: Antworten mit Zitat

in einem lan ( wie z.B. deinem Heimnetzwerk ) bewegen sich die pings in bereichen von meist max. 10ms. übers netz, egal ob jetzt 56k, dsl oder xdsl beginnt das ganze von 40ms bis einige sekunden. der ping innerhalb eines lans ist dabei relativ konstant da hier nix von jemanden weitergeleitet werden muß. im inet is das anders, packete müssen an bestimmten nodes in andere subnetze eingespeist werden, was bei der größe und der anzahl der teilnehmer natürlich auswirkungen auf die verzögerungszeit hat. auch zu bedenken sind physikalische übertragungsgeschwindigkeiten die auch nicht unbeschränkt sind.

vergiss das "verschlüsseln" oder besser packen deiner daten. was du brauchst ist ein algo der diese verzögerungen ausgleicht. suche nach quake 3 networking, diese methode ist recht ideal für echtzeit geschichten.
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 24.09.2005, 15:19    Titel: Antworten mit Zitat

Oder mal ne ganz andere Idee, steck einfach alle Variablen in einen String, schau dir dazu mal MKS$ zB an.. das könnte dir helfen. Das dürfte die einfachste Methode sein wenn du nicht auf externe Quake-Libs zurückgreifen willst.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 24.09.2005, 18:45    Titel: Antworten mit Zitat

http://www.bookofhook.com/News/Quake3NetworkingModelExpl.html

das ist lediglich ein artikel über die innerein der Quake 3 networking engine. beschreibt recht gut wie man für schnelle spiele lag bekämpfen und aussmoothen kann. von einer library hab ich nichts gesagt.

die sache mit den strings:

überleg mal: 10 benötigt 1 byte binär dargestellt. als string brauch ich dafür 2 byte. nicht wirklich eine verbesserung imo.
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 24.09.2005, 19:06    Titel: Antworten mit Zitat

hm, den artikel les ich mir dann auch ma durch happy sry

was ich mit string meinte is, das wenn er zB 30 integer-zahlen hat, das er die nicht als 30 integerzahlen sondern als ein 90-byte-string durchgibt. Genau die umformung macht MKS$ ja schließlich, oder?
Wenn er nur werte von 1 bis 10 hat sollte er die sowieso als byte und nicht als integer speichern.. das kanner dann mit chr$ auch als string mitsenden.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 24.09.2005, 21:33    Titel: Antworten mit Zitat

Also tut mir leid, aber ich versteh des englisch nicht so gut. Das einzige was ich verstanden habe, ist, das irgendwie die Spieldaten, die man braucht, an den Server gesendet werden, und der dann irgendwie was andere schickt oder so. Aber so richtig hab ich das nicht verstanden. Gibts da vielleicht auch ne Deutsche beschreibung?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 24.09.2005, 22:53    Titel: Antworten mit Zitat

Lass dir die Seite von google übersetzen. Dann hast du beim Lesen auch noch was zum Lachen... lachen
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 24.09.2005, 22:54    Titel: Antworten mit Zitat

und hinterher doch nix verstanden Zunge rausstrecken
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 24.09.2005, 23:46    Titel: Antworten mit Zitat

deutsches zum thema game networking gibts leider nicht ( kaum, nix brauchbares ). english lernen soll helfen heh Zunge rausstrecken
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 28.09.2005, 13:29    Titel: Antworten mit Zitat

Also ich versteh nur Bahnhof.

Das einzige was ich verstanden habe, ist das irgendwie nur Updates gesendet werden, und das hab ich in meinem Code ja auch so gemacht.

Ach ja, zu Google:

"Des Klienten empfangen Logikblutgeschwüre unten:"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 29.09.2005, 13:52    Titel: Antworten mit Zitat

Moin allerseits,

Wenn nur eine Variable übertragen werden soll, kann man auch so vorgehen:

Code:
type byte4
union
    all as integer
    singel(0 to 3) as byte
end union
end type

dim value as byte4

value.all = 1

? value.all
? value.singel(0),value.singel(1),value.singel(2),value.singel(3)


value.all = 4453615

? value.all
? value.singel(0),value.singel(1),value.singel(2),value.singel(3)

sleep


Nur als Vorschlag - eine Unit kann man vielleicht auch als Text durchziehen ... Units sind in jedem Fall eine Nette kleine Variante...
Vielleicht bringt auch der Int64(=longinteger) etwas - da sollten 8 bytes zur Verfügung stehen. lächeln

CU2
Tilli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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 FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 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