Advertisement
WeltEnSTurm

Untitled

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