Advertisement
WeltEnSTurm

Untitled

Nov 21st, 2010
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.31 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <string>
  4. #include <windows.h>
  5. #include <time.h>
  6. #include <math.h>
  7. #include <fstream>
  8.  
  9. using namespace std;
  10.  
  11. int COUNT_PASSWORDS=15;
  12. int ENTRIES_COMMANDS=5;
  13. string aCommands[]={
  14.     "exit",
  15.     "printmem",
  16.     "login",
  17.     "password",
  18.     "help",
  19. };
  20.  
  21. int exist=1;
  22. int idx=0;
  23. int pw[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  24. string pw5[]={
  25.     "ACTOR",
  26.     "ADAPT",
  27.     "ADIOS",
  28.     "ADULT",
  29.     "ADMIT",
  30.     "BAKER",
  31.     "BASIS",
  32.     "BEAST",
  33.     "CAMEL",
  34.     "CARGO",
  35.     "CAUSE",
  36.     "CHART",
  37.     "CHILD",
  38.     "DATUM",
  39.     "DECAY",
  40.     "DEOXY",
  41.     "DITCH",
  42.     "EAGLE",
  43.     "ELVES",
  44.     "ENZYM",
  45.     "EPOCH",
  46.     "FATTY",
  47.     "FAULT",
  48.     "FAUST",
  49.     "FIFTH",
  50.     "FILTH",
  51.     "GAGES",
  52.     "GENRE",
  53.     "GERMS",
  54.     "GIFTS",
  55.     "GIVER",
  56.     "GIVEN",
  57.     "GUTSY",
  58.     "HABIT",
  59.     "HEATS",
  60.     "HEAVY",
  61.     "HORNY",
  62.     "ICING",
  63.     "IDIOT",
  64.     "ITEMS",
  65.     "IRONY",
  66.     "JALOP",
  67.     "JIFFS",
  68.     "JIHAD",
  69.     "JUDGE",
  70.     "KAIAK",
  71.     "KARMA",
  72.     "KITTY",
  73.     "KNIFE",
  74.     "LAMER",
  75.     "LASER",
  76.     "LEVER",
  77.     "LOAFS",
  78.     "MACES",
  79.     "MAFIA",
  80.     "METER",
  81.     "MEZZO",
  82.     "NACHO",
  83.     "NAILS",
  84.     "NAMES",
  85.     "NIGHT",
  86.     "NINJA",
  87.     "NURSE",
  88.     "OBESE",
  89.     "OILED",
  90.     "OPIUM",
  91.     "OVENS",
  92.     "OXIDE",
  93.     "PAINT",
  94.     "PAIRS",
  95.     "PENNY",
  96.     "PLAIN",
  97.     "PLATE",
  98.     "QUANT",
  99.     "QUEEN",
  100.     "QUIET",
  101.     "RAINY",
  102.     "RAPID",
  103.     "REARS",
  104.     "ROOMS",
  105.     "SAGAS",
  106.     "SAGES",
  107.     "SAVVY",
  108.     "SCAPE",
  109.     "SCENE",
  110.     "TABLE",
  111.     "TAPES",
  112.     "TARGE",
  113.     "TEACH",
  114.     "UNBAN",
  115.     "UNCUT",
  116.     "USUAL",
  117. };
  118.  
  119. int pointerPos=0;
  120. void delayprint(string s){
  121.     if(s=="endl"){
  122.         cout<<endl;
  123.         pointerPos=0;
  124.         return;
  125.     }
  126.     int length=s.length();
  127.     int i=0;
  128.     ofstream outf;
  129.     while (i<length){
  130.         Sleep(1);
  131.         cout<<s[i]<<flush;
  132.         i++;
  133.         pointerPos++;
  134.         if(pointerPos>30){
  135.             cout<<endl;
  136.             pointerPos=0;
  137.         }
  138.     }
  139. }
  140.  
  141. int comparestrings(string s1, string s2){
  142.     int hits=0;
  143.     for(unsigned int i=0;i<s2.length();i++){
  144.         if(tolower(s1[i])==tolower(s2[i]))
  145.             hits++;
  146.     }
  147.     return hits;
  148. }
  149.  
  150. int GetPassword(int add){
  151.     srand(time(NULL)+add);
  152.     int size=sizeof(pw5)/sizeof("ABC");
  153.     int idx=rand()%size;
  154.     return idx;
  155. }
  156.  
  157. int randomrange(int x){
  158.     srand(time(NULL));
  159.     int idx=rand()%x;
  160.     return idx;
  161. }
  162.  
  163. int iRandHelp=0;
  164. int randHelp(){
  165.     iRandHelp++;
  166.     if(iRandHelp>50)
  167.         iRandHelp=0;
  168.     return iRandHelp;
  169. }
  170.  
  171. char cRandoms[]={'&','$','=','(',')','/','!','?','§','[',']','{','}',',','.','-'};
  172. string randomchars(){
  173.     string s="";
  174.     srand(time(NULL)+randHelp());
  175.     for(int i=0;i<rand()%30;i++){
  176.         srand(time(NULL)+randHelp()+i);
  177.         s=s+cRandoms[rand()%(sizeof(cRandoms)/sizeof('x'))];
  178.     }
  179.     return s;
  180. }
  181.  
  182. void printmemory(void){
  183.     for(int i=0;i<=COUNT_PASSWORDS;i++){
  184.         delayprint(randomchars());
  185.         delayprint(pw5[pw[i]]);
  186.         delayprint(randomchars());
  187.     }
  188.     delayprint("endl");
  189. }
  190.  
  191. int main(void){
  192.     idx=randomrange(COUNT_PASSWORDS);
  193.     for(int i=0;i<=COUNT_PASSWORDS;i++){
  194.         for(int i2=0;i2<=COUNT_PASSWORDS;i2++){
  195.             if(pw[i]!=pw[i2]){
  196.                 pw[i]=GetPassword(i);
  197.                 break;
  198.             }
  199.         }
  200.     }
  201.     bool bNextIsPasswort=false;
  202.     bool loggedin=false;
  203.     int attempts=0;
  204.     delayprint("endl");
  205.     while(exist&&attempts<4){
  206.         string guess="";
  207.         cin>>guess;
  208.         if(guess=="exit")
  209.             return EXIT_SUCCESS;
  210.         if(!loggedin){
  211.             if(bNextIsPasswort){
  212.                 if(guess.length()==5){
  213.                     int hits=comparestrings(guess, pw5[pw[idx]]);
  214.                     if(hits>5){
  215.                         cout<<hits;
  216.                         delayprint(" Matches, ");
  217.                         cout<<(3-attempts);
  218.                         delayprint(" attempts left");
  219.                         delayprint("endl");
  220.                         attempts++;
  221.                     }else{
  222.                         delayprint("SUCCESS! Perfect Match.");
  223.                         delayprint("endl");
  224.                         delayprint("The Secret Phrase is: ");
  225.                         delayprint("endl");
  226.                         Sleep(1000);
  227.                         delayprint("\"Need a dispenser here!\"");
  228.                         delayprint("endl");
  229.                         loggedin=true;
  230.                     }
  231.                 }else{
  232.                     delayprint("invalid length, ");
  233.                     cout<<(3-attempts);
  234.                     delayprint(" attempts left");
  235.                     delayprint("endl");
  236.                     attempts++;
  237.                 }
  238.                 if(attempts>=4){
  239.                     delayprint("No attempts left, exiting");
  240.                     Sleep(2000);
  241.                 }
  242.                 bNextIsPasswort=false;
  243.             }else if (!bNextIsPasswort){
  244.                 if(guess=="printmem"){
  245.                     printmemory();
  246.                 }else if(guess=="help"){
  247.                     for(int i=0;ENTRIES_COMMANDS>i;i++){
  248.                         delayprint(aCommands[i]);
  249.                         delayprint("endl");
  250.                     }
  251.                 }else if(guess=="login"||guess=="password"){
  252.                     bNextIsPasswort=true;
  253.                 }else{
  254.                     delayprint("not a registered command");
  255.                     delayprint("endl");
  256.                 }
  257.             }
  258.         }
  259.     }
  260.     return EXIT_SUCCESS;
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement