Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 09.08.2009, 14:40 Titel: Coderaten |
|
|
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 |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 10.08.2009, 22:27 Titel: |
|
|
Okay das war wohl zu schwer... dann machen wirs mal einfacher:
Code: | encrypted[n] = source_data[n] xor key_data[n] |
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.08.2009, 22:43 Titel: |
|
|
das ist zu einfach... eine xor-verschlüssung mit one-time-pad  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 10.08.2009, 22:48 Titel: |
|
|
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 |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 11.08.2009, 19:59 Titel: |
|
|
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 |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 11.08.2009, 21:14 Titel: |
|
|
Naja der Witz beim Coderaten ist ja, dass man nicht unbedingt weiss, was jede einzelne Prozedur genau macht. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.08.2009, 21:31 Titel: |
|
|
Wie wäre es mit...
Code: | header[0x33] = CLAMP(m_nSamplePreAmp, 0x10, 0x7F) | 0x80; |
 _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 11.08.2009, 22:22 Titel: |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.08.2009, 22:33 Titel: |
|
|
hehe, nicht schlecht... streng genommen setzt der code natürlich nicht nur das stereo-bit, sondern auch die master-lautstärke  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 13.08.2009, 14:10 Titel: |
|
|
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 :
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  _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 13.08.2009, 14:24 Titel: |
|
|
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.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 13.08.2009, 14:41 Titel: |
|
|
Ja, Strings als char-array zu behandeln ist WESENTLICH schneller hinzuschreiben und es wird auch schneller ausgeführt.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 13.08.2009, 15:49 Titel: |
|
|
@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
Mein C# Code wäre etwas schwieriger zu verstehen gewesen...Besonders die ersten drei Berechnungen  _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 13.08.2009, 16:13 Titel: |
|
|
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.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 13.08.2009, 16:43 Titel: |
|
|
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
(
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 13.08.2009, 17:04 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 16.08.2009, 12:23 Titel: |
|
|
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 |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 16.08.2009, 13:33 Titel: |
|
|
Irgendwas ála
Die Karte vom start-Stapel und vom zieh-Stapel darf nicht gleichzeitig Herz oder Karo sein? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 16.08.2009, 17:27 Titel: |
|
|
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 |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 16.08.2009, 18:21 Titel: |
|
|
kp!? |
|
Nach oben |
|
 |
|