JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=d6e66e4682a5785e525007a9fc910f5fMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Enigma
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 15:57    Titel: Enigma Antworten mit Zitat

hm falls es irgendjemanden intressiren sollte, ich hab mal die Enigma aus dem Offtopicbereich geproggt...
naja, nciht perfekt, leicht Fehlreanfällig, im Moment verarbeitet die nur kleine Buchstaben und Leerzeichen. Naja viel Spaß damit *g*:

www.webspace-kostenlos.com/c3-soft
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:00    Titel: Antworten mit Zitat

Zitat:
Fehler:

Datei konnte nicht gefunden werden
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:00    Titel: Antworten mit Zitat

Zitat;

Fehler:

Datei konnte nicht gefunden werden

Ad-Pay.de-Mit der eigenen Homepage Geld verdienen!



Ist das Projekt OpenSource?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:01    Titel: Antworten mit Zitat

Fehler behoben...
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:02    Titel: Antworten mit Zitat

was soll openSouce sein, die Enigma?
hm, ka. könnte ja vileiecht mal den Quellcoe posten, wenns irgendjemand interessiert...
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:07    Titel: Antworten mit Zitat

Jo mich würd's interessieren Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:15    Titel: Antworten mit Zitat

http://mckoss.com/Crypto/Enigma.htm

äh, das Progegn war ziemlich simpel schaut euch dne Link an, ich habe gaenau das Nachgeproggt.
CPP:
class Rotor
{
public:
   Rotor(char Links[26], char Rechts[26], int Pfeil);
   
   int  GetLeft(char Char);//liefert die Positions des gesuchten Buchstabens auf der Linken seite
   int  GetRight(char Char);//wie oben nur mit rechts
   char GetLeft(int Number);
   char GetRight(int Number);
   void Set(char Char);//dreht das rad auf den buchstaben

   bool Rotate();//liefert true, wenn das nächste rad auch gedreht
protected:
   char m_Links[26];
   char m_Rechts[26];
   int  m_Rotation;
   int m_Pfeil;//gibt an, wo das nächste Rad gedreht werden muss!
};

Rotor::Rotor(char Links[26], char Rechts[26], int Pfeil)
{
   ZeroMemory(this, sizeof(Rotor));
   m_Pfeil=Pfeil;
   memcpy(m_Links, Links, sizeof(char)*26);
   memcpy(m_Rechts, Rechts, sizeof(char)*26);
}

int Rotor::GetLeft(char Char)
{
   /*
   es gibt zwei Variablen zum Zählen, eine die die Position der Ausgangsstellung repräsentiert,
   und eine die die Psition im Array beschreibt. das ist wichtig weil das Arry vileiecht bei 8
   anfangen muss zu zählen, dann aber bis 26+8 laufen muss, es muss also bei 26 auf 0 gestellt
   weden, weils sonst nciht ginge
   */

   for(int i=m_Rotation, int Counter=0; Counter<26; i++, Counter++)
   {
      if(i>=26)
      {
         i-=26;
      }

      if(m_Links[i]==Char)
      {
         return Counter;//-m_Rotation;
      }
   }
   return -2;//wenn das hier eintreten sollte, ist die Enigma wahrscheinlich kaput...
}

int Rotor::GetRight(char Char)
{
   for(int i=m_Rotation, int Counter=0; Counter<26; i++, Counter++)//s.o.
   {
      if(i>=26)
      {
         i-=26;
      }

      if(m_Rechts[i]==Char)
      {
         return Counter;//-m_Rotation;
      }
   }
   return -2;//wenn das hier eintreten sollte, ist die Enigma wahrscheinlich kaput...
}

char Rotor::GetLeft(int Number)
{
   if(Number+m_Rotation>25)
   {
      return m_Links[Number+m_Rotation-26];
   }
   return m_Links[Number+m_Rotation];
}

char Rotor::GetRight(int Number)
{
   if(Number+m_Rotation>25)
   {
      return m_Rechts[Number+m_Rotation-26];
   }
   return m_Rechts[Number+m_Rotation];
}

void Rotor::Set(char Char)
{
   m_Rotation=GetLeft(Char);
}

bool Rotor::Rotate()
{
   m_Rotation++;
   if(m_Rotation>25)
   {
      m_Rotation-=26;
   }

   return (m_Rotation==m_Pfeil);//wenn da der Pfeil ist, muss das nächste rad gedreht werdne
}



class Reflector
{
public:
   Reflector(char Chars[26]);
   int Get(int Number);/*gibt die Nummer zurück an der das selbe Zeichen steht,
   wii an der nummer...*/

private:
   char m_Chars[26];

};

Reflector::Reflector(char Chars[26])
{
   memcpy(m_Chars, Chars, sizeof(char)*26);
}

int Reflector::Get(int Number)
{
   char Char=m_Chars[Number];
   for(int i=0; i<26; i++)
   {
      if(m_Chars[i]==Char && i!=Number)
      {
         return i;
      }
   }
   return -1;//sollte bei korrekteer initialiserung nicht auftreten...
}

class Alphabet
{
public:
   Alphabet()
     //m_Chars("abcdefghijklmnopqrstuvwxyz")
   {
      strcpy(m_Chars, "abcdefghijklmnopqrstuvwxyz");
   }

   int Get(char Char)
   {
      for(int i=0; i<26; i++)
      {
         if(m_Chars[i]==Char)
         {
            return i;
         }
      }
      return -1;
   }

   char Get(int Number)
   {
      return m_Chars[Number];
   }
protected:
   char m_Chars[26];
};


class Enigma
{
public:
   Enigma():
      R3("abcdefghijklmnopqrstuvwxyz",
         "bdfhjlcprtxvznyeiwgakmusqo", 22),
      R2("abcdefghijklmnopqrstuvwxyz",
         "ajdksiruxblhwtmcqgznpyfvoe", 5),
      R1("abcdefghijklmnopqrstuvwxyz",
         "ekmflgdqvzntowyhxuspaibrcj", 17),
      Reflect("abcdefgdijkgmkmiebftcvvjat")
   {
   };


   void Set(char C1, char C2, char C3)
   {
      R1.Set(C1);
      R2.Set(C2);
      R3.Set(C3);
   }


   char Get(char Char)
   {
      if(' '==Char)
      {
         return ' ';
      }
      if(R3.Rotate())
      {
         if(R2.Rotate())
         {
            R1.Rotate();
         }
      }
      return Buchstaben.Get(R3.GetRight(R3.GetLeft(R2.GetRight(R2.GetLeft(R1.GetRight(R1.GetLeft(Reflect.Get(R1.GetLeft(R1.GetRight(R2.GetLeft(R2.GetRight(R3.GetLeft(R3.GetRight(Buchstaben.Get(Char)))))))))))))));
   }


   Get(char* String, char* Output)
   {
      for(int i=0; i<strlen(String); i++)
      {
         Output[i]=Get(String[i]);
      }
   }


protected:
   Rotor R3;
   Rotor R2;
   Rotor R1;
   Reflector
    Reflect;

   Alphabet Buchstaben;
};

_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:20    Titel: Antworten mit Zitat

interessante umsetzung Smile

Benutzung geht mit der get-Funktion, sehe ich das richtig?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:31    Titel: Antworten mit Zitat

jap
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:33    Titel: Antworten mit Zitat

frage: wieso keine std::string?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 16:54    Titel: Antworten mit Zitat

*g*

na wiels so auch geht!

ich meine das ganze Ding ist ja sehr unflexibel, schaut euch mal die 15 Funktionen ineinander an, das hätte man in ner Schleife machen müssen...

und sowieso un düberhauplt ist da ja keine Fehlerkontrolle und so.

Habe ja auch mal überlegt die mit alles ASCI Zeichen zu machen und mit mehr Rädern, dann könnte man TExtdatein verschlüsseln und zwar noch leicht sicherer, aber was solls, irgendwann vieliecht einmal.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
C++progging
Senior JLI'ler


Alter: 31
Anmeldedatum: 03.10.2005
Beiträge: 244
Wohnort: Sauerland
Medaillen: Keine

BeitragVerfasst am: 14.10.2005, 14:08    Titel: Antworten mit Zitat

Ähhhh..
wieso wird immer noch FEHLER.. angezeigt?
Kannste das nich auf'er C3-Page zum download freigeben????
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
C++progging
Senior JLI'ler


Alter: 31
Anmeldedatum: 03.10.2005
Beiträge: 244
Wohnort: Sauerland
Medaillen: Keine

BeitragVerfasst am: 19.10.2005, 12:27    Titel: Antworten mit Zitat

C++progging hat Folgendes geschrieben:
Ähhhh..
wieso wird immer noch FEHLER.. angezeigt?
Kannste das nich auf'er C3-Page zum download freigeben????

Der Fehler ist immer noch net weg!!!!!!!!!
_________________
http://gtsp.gt.funpic.de
NEU: http://gtspforum.gt.funpic.de - das dazugehörige board
ProjectX for PSP - Jetzt runterladen!!
unter http://www.pspsource.de/news.php?extend.4537
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 19.10.2005, 15:51    Titel: Antworten mit Zitat

"multiple exclamation marks are a sure sign for a deseased mind"

Jonathan hat den Quellcode gepostet weshalb sollte er denn noch mehr tun?
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 19.10.2005, 17:42    Titel: Antworten mit Zitat

c3-soft.de/downloads/WinEnigma.exe

Eine Version mit Windows Oberfläche.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte Alle Zeiten sind GMT
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.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum