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:

Coderaten
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 09.08.2009, 14:40    Titel: Coderaten Antworten mit Zitat

Jemand postet ein Codefetzen, und alle anderen versuchen zu Erraten, was dieser Codefetzen machen soll oder wo er verwendet wird.
Der der zuerst das richtige sagt postet den nächsten Codefetzen.

Ich fang mal an:
Code:
If FuncEnum.Algos(n).szsfEnCipherFunction <> "" Then plg->sfEnCipher = DylibSymbol(ref->handle, FuncEnum.Algos(n).szsfEnCipherFunction)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 10.08.2009, 22:27    Titel: Antworten mit Zitat

Okay das war wohl zu schwer... dann machen wirs mal einfacher:
Code:
encrypted[n] = source_data[n] xor key_data[n]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 10.08.2009, 22:43    Titel: Antworten mit Zitat

das ist zu einfach... eine xor-verschlüssung mit one-time-pad Zunge rausstrecken
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 10.08.2009, 22:48    Titel: Antworten mit Zitat

Da niemand antwortetet will ich einfach einmal anfangen - es heißt ja "..raten".

Ich nehme mal an, dass es irgendeine Routine eines XOR-Verschlüsselungsverfahrens ist. In diesem Fall soll diese wahrscheinlich die Daten (source_data) mit dem Schlüssel (key_data) in die entschlüsselten Daten (encrypted) umwandeln.

//edit: ups, jojo war wohl einiges schneller als ich.
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 11.08.2009, 19:59    Titel: Antworten mit Zitat

Für dieses Ratespiel müssen wir aber noch einen BASIC-Schlüsselwörter / Bibliotheksfunktionen-"Scope" (Bereich) definieren, den die Rätsel verwenden dürfen, damit nicht irgendwelche weiss ich wie exotischen Methodenaufrufe verwendet werden.

Selbstverständlich können wir hierbei auch abmachen, dass fürs Rätsel stellen alles verwendet werden darf, was sich in Google durch Eingabe von "freebasic <Prozedurname>" als Suchbegriff innerhalb der ersten 10 Treffer in deutscher Sprache finden lässt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 11.08.2009, 21:14    Titel: Antworten mit Zitat

Naja der Witz beim Coderaten ist ja, dass man nicht unbedingt weiss, was jede einzelne Prozedur genau macht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.08.2009, 21:31    Titel: Antworten mit Zitat

Wie wäre es mit...
Code:
header[0x33] = CLAMP(m_nSamplePreAmp, 0x10, 0x7F) | 0x80;

Zunge rausstrecken
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 11.08.2009, 22:22    Titel: Antworten mit Zitat

Ich tippe einmal auf:
In einer Screamtracker-Modul-Datei (*.S3M) das Stereo-Bit im MasterVolume Byte des Headers setzen.

(Mein Programm Multimedia-Tag kann das auch - allerdings nicht in der aktuell veröffentlichten Version, sondern nur in der Entwicklungsversion)
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.08.2009, 22:33    Titel: Antworten mit Zitat

hehe, nicht schlecht... streng genommen setzt der code natürlich nicht nur das stereo-bit, sondern auch die master-lautstärke lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 13.08.2009, 14:10    Titel: Antworten mit Zitat

Ich weiß jetzt nicht, ob auch Programmcode anderer Programmiersprachen (so wie Jojo's Beispiel) akzeptiert wird. Wenn ja, hätte ich folgenden Code (in C#.NET) bei dem ich gerne eure Vermutungen hören würde:
Code:
fq = (float)(new Punkt(45, 0, w,h, Bx, By).fromXY().X - new Punkt(0, 0, w,h, Bx, By).fromXY().X);
q = ((Math.Ceiling(Math.Log10(fq) - 0.1) < Math.Round(Math.Log10(fq) + 0.7)) ? 0 : 1);
fq = (float)Math.Pow(10, Convert.ToInt32(Math.Ceiling(Math.Log10(fq)-0.1))-1);
for (int r = -(Convert.ToInt32(Math.Truncate(Bx / fq))); r <= Convert.ToInt32(Math.Truncate(Bx / fq)); r++)
{
      fw = new Punkt(r*fq, 0f, w, h, Bx, By).getXY().X;
      g.DrawLine(pAchse, fw, h / 2f + ((r % 10 == 0) ? 3 : ((r % 5 == 0) ? 2 : 1)), fw, h / 2f - ((r % 10 == 0) ? 3 : ((r % 5 == 0) ? 2 : 1)));
      if (r != 0 && ((r % 5 == 0 && q == 1) || (r % 10 == 0))) g.DrawString(Math.Round(r * fq, (int)((-Math.Ceiling(Math.Log10(fq)) + ((r % 10 == 0) ? 0 : 1) < 0) ? 0 : -Math.Ceiling(Math.Log10(fq)) + ((r % 10 == 0) ? 0 : 1))).ToString(), new Font("Arial", 8), new SolidBrush(pAchse.Color), fw - 5, h / 2f + 5);
}


Ansonsten hätte ich folgenden FreeBasic Code anzubieten lächeln :
Code:
If ((Asc(Mid(tmpStr,q+2,1)) And &B11100000) = &B11100000) OrElse (Asc(Mid(tmpStr,q+2,1)) = 0) Then tmpStr = Left(tmpStr,q)+Mid(tmpStr,q+2):q += 0: w += 1


Von euch würde ich gerne wissen, zu was der Programmcode wohl gut sein mag...
Viel Spaß beim raten grinsen
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 13.08.2009, 14:24    Titel: Antworten mit Zitat

Code:
If ((Asc(Mid(tmpStr,q+2,1)) And &B11100000) = &B11100000) OrElse (Asc(Mid(tmpStr,q+2,1)) = 0) Then tmpStr = Left(tmpStr,q)+Mid(tmpStr,q+2):q += 0: w += 1

Lösche das Zeichen vor einem chr(0) oder einem chr >= 224 aus einem String heraus. Ich hätte ja gesagt, dass ungültige Zeichen entfernt werden sollen, aber es wird ja das Zeichen davor entfernt *verwirrt bin*


Allerdings finde ich Asc(Mid(tmpStr,q+2,1)) ziemlich umständlich. happy
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 13.08.2009, 14:41    Titel: Antworten mit Zitat

Ja, Strings als char-array zu behandeln ist WESENTLICH schneller hinzuschreiben und es wird auch schneller ausgeführt. grinsen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 13.08.2009, 15:49    Titel: Antworten mit Zitat

@Jojo: Vielen Dank für den Tipp! Ich hab bis jetzt noch nicht gewusst, dass man mit FreeBasic über [] einen String-Index angegeben kann - ich bin noch immer eher QBasic Syntax gewohnt. Die []-Klammern verwendete ich für Strings bis jetzt nur in C/C#. Der Code ist außerdem schon etwas älter - inzwischen weiß ich auch, dass man bei ASC einen Index angeben kann.

@nemored: Kann man gelten lassen. Dennoch würde es mich interessieren, ob jemand eine Ahnung hat, zu was man den Code denn gebrauchen kann. Vielleicht eine (eher sehr kleine) Hilfe:
Code:
q = InStr(q+1,tmpStr,Chr(&HFF)+Chr(&H00))
If ((tmpStr[q+1] And &B11100000) = &B11100000) OrElse (tmpStr[q+1] = 0) Then tmpStr = Left(tmpStr,q)+Mid(tmpStr,q+2):q += 0: w += 1

Den Code hab ich übrigens gleich optimiert lächeln

Mein C# Code wäre etwas schwieriger zu verstehen gewesen...Besonders die ersten drei Berechnungen grinsen
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 13.08.2009, 16:13    Titel: Antworten mit Zitat

Mache (u. a.) aus einem Trennungszeichen chr(255, 0) ein Trennungszeichen chr(0)?

Wollte übrigens gerade das tmpStr-Offset verbessern, warst aber schneller als ich. happy
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 13.08.2009, 16:43    Titel: Antworten mit Zitat

Naja, ist ja egal. Der Code wäre für etwas da, dass sich "Unsynchronisation" nennt und bei ID3v2 Tags in MP3 Dateien benötigt wird. Dabei wird z.B. die Folge FF F0 zu FF 00 F0 bzw. auch FF 00 zu FF 00 00. Der Code macht das ganze wieder rückgängig, d.h. FF 00 F0 zu FF F0 bzw. FF 00 00 zu FF 00.

Ich freue mich schon auf das nächste Coderätsel von nemored lächeln

(
nemored hat Folgendes geschrieben:
Wollte übrigens gerade das tmpStr-Offset verbessern, warst aber schneller als ich.

Als ich einige solche Optimierungen in meinem Programm vorgenommen hatte, stürzte es auf einmal ab und funktionierte nicht mehr. Da kam ich dann darauf, dass der Index über [] ja 0-basiert ist und hab sofort alles umgeändert...
)
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 13.08.2009, 17:04    Titel: Antworten mit Zitat

Hmm, so richtig einfallen tut mir da nichts ...
Vielleicht das hier:
Code:
if not((feld(start.stapel).karte(start.nr).farbe = Herz or feld(start.stapel).karte(start.nr).farbe = Karo) _
    xor (feld(ziel.stapel).karte(ziel.nr).farbe = Herz or feld(ziel.stapel).karte(ziel.nr).farbe = Karo)) then return 0


[ot]ich sitze gerade auf den terassischen Inseln (unterhalb von Balkonien) und bin nur damit beschäftigt, mein T-Shirt an- und auszuziehen ...[/ot]
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 16.08.2009, 12:23    Titel: Antworten mit Zitat

War das jetzt zu schwer? Es geht im Prinzip nur um boolsche Algebra, vielleicht mit dem Hintergedanken, dass es so ähnlich in meinem Patiencen-Projekt vorkommt ...
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 16.08.2009, 13:33    Titel: Antworten mit Zitat

Irgendwas ála
Die Karte vom start-Stapel und vom zieh-Stapel darf nicht gleichzeitig Herz oder Karo sein?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 16.08.2009, 17:27    Titel: Antworten mit Zitat

Genau. Wozu wird das gebraucht?
(ist übrigens kein Ziehstapel, sondern der Zielstapel, nur damit das nicht auf die falsche Fährte führt)
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 16.08.2009, 18:21    Titel: Antworten mit Zitat

kp!?
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 -> Off-Topic-Forum 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