1. Куча / Говнокод #24600

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    #include <iostream>
    #include <string>
    #include <cstdlib>
    #include <ctime>
    #define next ;
    #define zero 0
    #define one 1
    #define two 2
    #define three 3
    #define four 4
    #define five 5
    #define six 6
    #define seven 7
    #define eight 8
    #define nine 9
    #define dot .
    #define begin {
    #define end }
    #define open (
    #define close )
    #define sqopen [
    #define sqclose ]
    #define less <=
    #define xless <
    #define greater >=
    #define xgreater >
    #define isnt !=
    #define isequal ==
    #define mustbe =
    #define write cout
    #define plus +
    #define minus -
    #define multi *
    #define divby /
    #define incr +=
    #define decr -=
    using namespace std next
    
    string pswdGen open int quantity close begin
        srand open time open 0 close close next
        char chars sqopen sqclose mustbe "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890@\#\$\%\&\-\+\!\/\_" next
        string password next
        for(int i = zero next i xless quantity next i++) begin
            password incr chars sqopen rand open close % open sizeof open chars close divby sizeof open *chars close close sqclose next
        end
        return password next
    end
    int main open close begin
        int charNo next
        write << "How many characters do you want in the password?" << endl next
        cin >> charNo next
        write << "Your new password is: " << pswdGen open charNo close << endl next
        return zero next
    end

    По сути это тот же крестовый паролегенератор, но из-за дефайнов и от того символов можно отнести в кучу. И да, "Переведи на "зрз"" в сторону. Перевел вам за щеку, проверяйте

    Запостил: shite, 08 Августа 2018

    Комментарии (19) RSS

    • зрз это php.
      Ответить
    • password incr chars sqopen rand open close % open sizeof open chars close divby sizeof open *chars close close sqclose next

      I lol'd hard.
      Ответить
      • у перла была такая программа, написанная самим Ларри, целиком состоящая из слов и читающая как английский тепкст
        Ответить
    • Вариант полуТЬше:
      #include <iostream>
      #include <string>
      #include <cstdlib>
      #include <ctime>
      #define next ;
      #define zero 0
      #define one 1
      #define two 2
      #define three 3
      #define four 4
      #define five 5
      #define six 6
      #define seven 7
      #define eight 8
      #define nine 9
      #define dot .
      #define begin {
      #define end }
      #define open (
      #define close )
      #define sqopen [
      #define sqclose ]
      #define less <=
      #define xless <
      #define greater >=
      #define xgreater >
      #define isnt !=
      #define isequal ==
      #define mustbe =
      #define write cout
      #define plus +
      #define minus -
      #define multi *
      #define divby /
      #define incr +=
      #define decr -=
      using namespace std next
       
      string pswdGen open int quantity close begin
          srand open time open 0 close close next
          char chars sqopen sqclose mustbe "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890@\#\$\%\&\-\+\!\/\_" next
          string password next
          for open int i = zero next i xless quantity next i++ close begin
              password incr chars sqopen rand open close % open sizeof open chars close divby sizeof open *chars close close sqclose next
          end
          return password next
      end
      int main open close begin
          int charNo next
          write << "How many characters do you want in the password?" << endl next
          cin >> charNo next
          write << "Your new password is: " << pswdGen open charNo close << endl next
          return zero next
      end
      Ответить
      • Я бы ещё "<<", ">>" занёс под "define".
        Ответить
        • Пробовал, компилятор не давал. Пробовал еще син занести как рид. Тогда телефон не брал инпут.
          Ответить
      • > open 0

        На доработку!
        Ответить
        • Доработал тебе за щекой, проверь.
          Ответить
    • Перевёл на "PHP", проверь:
      <?php $macros = Array(
          'next' => ';',
          'zero' => '0',
          'dot' => '.',
          'begin' => '{',
          'end' => '}',
          'open' => '(',
          'close' => ')',
          'sqopen' => '[',
          'sqclose' => ']',
          'xless' => '<',
          'mustbe' => '=',
          'write' => 'echo',
          'multi' => '*',
          'divby' => '/',
          'incr' => '.=',
          'more' => '++',
          'per' => '%',
          'quantity' => '$quantity',
          'password' => '$password',
          'chars' => '$chars',
          'endl' => 'PHP_EOL',
          'cin' => 'STDIN',
          'charNo' => '$charNo',
          'i' => '$i',
      ); ob_start();?>
      
       function pswdGen open quantity close begin 
          srand open time open false close close next 
          chars mustbe "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890@\#\$\%\&\-\+\!\/\_" next 
          password mustbe "" next 
          for open i mustbe zero next i xless quantity next i more close begin 
              password incr chars sqopen rand open close per strlen open chars close sqclose next 
          end 
          return password next 
       end 
       
       write "How many characters do you want in the password?" dot endl next 
       charNo mustbe fgets open cin close next 
       write 'Your new password is: ' dot pswdGen open charNo close dot endl next 
      
      <?php $code = implode(' ', array_map(function($x) use($macros) {return array_key_exists($x, $macros) ? $macros[$x] : $x;}, explode(' ', ob_get_clean()))); eval($code);


      https://ideone.com/y0Udxk
      Ответить
    • Я тоже когда-то такой хуйнёй занимался, придумывал блочные конструкции:
      #define if if(
      #define else }else{
      #define while while(
      #define for for(
      #define do ){
      #define end }
      
      int main() {
      	if 0 do
      	    puts("xyu");
      	else
      	    puts("XYU");
      	end
      	
      	int i = 5;
      	while i-- do
      	    puts("i not null");
      	end
      	
      	for i = 0; i < 10; i += 2 do
      	    printf("%d\n", i);
      	end
      }
      Как добавить elseif и repeat/until?
      Ответить
      • #define elseif }else if(

        Только я бы рекомендовал вместо “do” определить слово “then”, потому что иначе мы не сможем определить циклы по постусловию.
        #define repeat do{
        #define until }while(!

        Осталось чем-нибудь закрыть скобку у while.
        Ответить
        • Точнее, так:
          #define until }while(!(
          #define endrepeat ))
          Ответить
        • Хехе, неет, не всё так просто, твой елсеиф не будет работать вместе с другими макросами.
          Насчет "do" – если определить вместо него "then" получаются какие-то говно: "while cond then" и "for i = 0; i < n; ++i then", немножко странно, нужно что-то другое.
          Ответить

    Добавить комментарий