Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Erklärung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.01.2004, 22:45 Uhr
Pablo
Supertux
(Operator)


Gibt es eine vernünftige Erklärung, warum dieser C Code diesen langen Weihnachtstext ausgibt?


C++:
#include <stdio.h>

main(t,_,a)
char *a;
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
)&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/"
)
:t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"
),a+1);}



Was steckt sich dahinert? Ich hab sogar Kopfschmerzen gekriegt, da ich ihn nicht verstehe, das ist einfach viel zu viel für mich. Warum bekommt man

Zitat:

On the first day of Christmas my true love gave to me
a partridge in a pear tree.

On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.

[...]

On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 18.01.2004 um 22:46 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.01.2004, 23:13 Uhr
Pablo
Supertux
(Operator)


Oder dafür?

C++:

    #define/**/X
  char*d="X0[!4cM,!"
       "4cK`*!4cJc(!4cHg&!4c$j"
     "8f'!&~]9e)!'|:d+!)rAc-!*m*"
   ":d/!4c(b4e0!1r2e2!/t0e4!-y-c6!"
  "+|,c6!)f$b(h*c6!(d'b(i)d5!(b*a'`&c"
  ")c5!'b+`&b'c)c4!&b-_$c'd*c3!&a.h'd+"
"d1!%a/g'e+e0!%b-g(d.d/!&c*h'd1d-!(d%g)"
"d4d+!*l,d7d)!,h-d;c'!.b0c>d%!A`Dc$![7)35E"
       "!'1cA,,!2kE`*!-s@d(!(k(f//g&!)f.e5'f(!+a+)"
       "
f%2g*!?f5f,!=f-*e/!<d6e1!9e0'f3!6f)-g5!4d*b"
       "+e6!0f%k)d7!+~^'
c7!)z/d-+!'n%a0(d5!%c1a+/d4"
       "!2)c9e2!9b;e1!8b>e/!     7cAd-!5fAe+!7fBe(!"
      "8hBd&!:iAd$![7S,Q0!1     bF 7!1b?'
_6!1c,8b4"
      "
!2b*a,*d3!2n4f2!${4    f.      '!%y4e5!&f%"
     "d-^-d7!4c+b)d9!4c-a    '
d        :!/i('`&d"
     ";!+l'
a+d<!)l*b(d=!'   m-        a  &d>!&d'"
    "
`0_&c?!$dAc@!$cBc@!$   b         <    ^&d$`"
    "
:!$d9_&l++^$!%f3a'    n1        _       $ !&"
   "f/c(o/_%!(f+c)q*c     %!         *       f &d+"
   "f$s&!-n,d)n(!0i-     c-         k)       !  3d"
   "/b0h*!H`7a,![7*     i]          5        4   71"
  "[=ohr&o*t*q*`*d      *v         *r         ;  02"
  "7*~=h./}tcrsth      &t          :          r   9b"
"].,b-725-.t--//      #r         [           <   t8-"
"752793?  <.~;b      ].t--+r     /           #    53"
"7-r[/9~X  .v90      <6/<.v;-52/={            k   goh"
"./}q;   u  vto     hr  `.i*$engt$            $    ,b"
";$/     =t ;v;     6     =`it.`;7=`          :    ,b-"
"725    = / o`.    .d       ;b]`--[/+       55/     }o"
"`.d   :   - ?5    /           }o`.'
     v/i]q      - "
"
-[;   5  2  =`  it            .        o;53-       . "
"
v96   <7 /      =o            :            d        =o"
"
--/i  ]q--      [;           h.            /        = "
"
i]q--[  ;v      9h           ./            <        - "
"
52={cj   u      c&`          i   t       . o        ; "
"
?4=o:d=         o--          /  i        ]q         - "
"
-[;54={  cj     uc&          i]q          -          -"
"
[;76=i]q[;6     =vsr        u.i           /          ={"
"
=),BihY_gha     ,)\0        "             ,          o [
  3217];int i,   r,w,f        ,              b        ,x ,
  p;n(){return   r  <X        X               X       X  X
  768?d[X(143+   X  r++       +               *d      )  %
   768]:r>2659   ?  59:       (                x      =  d
   [(r++-768)%   X  947      +             768]       ) ?
   x^(p?6:0):(p  =   34      X            X           X )
   ;}s(){for(x=  n   ();     (           x^           ( p
  ?6:0))==32;x=  n    ()     )   ;return x            ; }
  void/**/main X      ()     {           r           =  p
  =0;w=sprintf  (X     X     X         X X           X o
  ,"
char*d=");  for          (    f=1;f <            * d
  +143;)if(33-(  b=d         [      f++ X           ]  )
  ){if(b<93){if   X(!        p          )             o
   [w++]=34;for    X(i       =         35             +
    (p?0:1);i<b;    i++      )         o
    [w++]=s();o[     w++               ]
     =p?s():34;}     else              X
       {for(i=92;     i<b;            i
++)o[w++]=     32;}           }
     else o     [w++          ]
=10;o        [
   w]=0      ;
    puts(o);}




Zitat:

Try:

cc dhyang.c -o saitou
./saitou > aku.c
cat aku.c

cc aku.c -o soku
./soku > soku.c
cat soku.c

cc soku.c -o zan
./zan > zan.c
cat zan.c

cc zan.c -o aku
./aku | diff - aku.c


Quelle: www.ioccc.org/2000/
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 18.01.2004 um 23:13 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.01.2004, 23:19 Uhr
(un)wissender
Niveauwart


Das alles ist eh kein ANSI und lässt sich auch nicht kompilieren.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.01.2004, 23:24 Uhr
Pablo
Supertux
(Operator)


Bei lässt sich kompilieren (gcc)
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.01.2004, 23:26 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hmm ich vermute mal das ist für kranke Geister denen c-golf zu einfach geworden ist.Vielleicht erreicht beefy ja bald diese Stufe und haut uns dann so nen Spass um die Ohren...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.01.2004, 17:20 Uhr
Hans
Library Walker
(Operator)



Zitat:
(un)wissender postete
Das alles ist eh kein ANSI und lässt sich auch nicht kompilieren.

Hi (un)wissender,
da machst Du Deinem Nick ja wieder alle Ehre, denn mein Borland Compiler frisst das. Der hat zwar ein paar Warnungen rausgeschmissen, aber er hat's übersetzt.
Das es kein ANSI ist, stimmt allerdings. Und warum das dabei heraus kommt, was heraus kommt? - Da bin ich auch überfragt.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 19.01.2004 um 17:23 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.01.2004, 21:39 Uhr
(un)wissender
Niveauwart


Mein Compiler nimmt das nicht, gcc 3.3.1 und gcc 3.4.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.01.2004, 23:26 Uhr
Hans
Library Walker
(Operator)



Zitat:
(un)wissender postete
Mein Compiler nimmt das nicht, gcc 3.3.1 und gcc 3.4.

Hi,
mit gcc kenn ich mich nicht aus, aber vielleicht hilft es ja, wenn Du mal ein paar Schalter (d.h. Compileroptionen) anders setzt als gewöhnlich. Die Schalter stehen ja in den man-pages oder sonstigen Hilfe-Dateien alle erklärt.
Auch kann es ganz nützlich sein, wenn Du mal auf die Seite gehst, wo diese Dinger herkommen. Pablo hat ja oben den Link dahin gesetzt. Da sind immer noch Dateien dabei, die sich .hint nennen. Dort steht noch was zum jeweiligen Programm drin.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.01.2004, 23:56 Uhr
Pablo
Supertux
(Operator)


Ich habe beide Dateien mit gcc 3.3.2 kompiliert, einfach so: gcc -omistery mistery und

gcc dhyang.c -o saitou
./saitou > aku.c
cat aku.c

gcc aku.c -o soku
./soku > soku.c
cat soku.c

gcc soku.c -o zan
./zan > zan.c
cat zan.c

gcc zan.c -o aku
./aku | diff - aku.c
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.01.2004, 00:36 Uhr
0xdeadbeef
Gott
(Operator)


Das sieht zwar in der Tat krank aus, aber in der Regel werden solche Programme erst geschrieben und nachher von Hand verunstaltet. Ich hab sowas mal auseinandergepfriemelt, das hier:

C++:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/time.h>
#include <signal.h>
#define m(b)a=b;z=*a;while(*++a){y=*a;*a=z;z=y;}
#define h(u)G=u<<3;printf("\e[%uq",l[ u ])
#define c(n,s)case n:s;continue
char x[]="((((((((((((((((((((((",w[]=
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";char r[]={92,124,47},l[]={2,3,1
,0};char*T[]={"  |","  |","%\\|/%"," %%%",""};char d=1,p=40,o=40,k=0,*a,y,z,g=
-1,G,X,**P=&T[4],f=0;unsigned int s=0;void u(int i){int n;printf(
"\233;%uH\233L%c\233;%uH%c\233;%uH%s\23322;%uH@\23323;%uH \n",*x-*w,r[d],*x+*w
,r[d],X,*P,p+=k,o);if(abs(p-x[21])>=w[21])exit(0);if(g!=G){struct itimerval t=
{0,0,0,0};g+=((g<G)<<1)-1;t.it_interval.tv_usec=t.it_value.tv_usec=72000/((g>>
3)+1);setitimer(0,&t,0);f&&printf("\e[10;%u]",g+24);}f&&putchar(7);s+=(9-w[21]
)*((g>>3)+1);o=p;m(x);m(w);(n=rand())&255||--*w||++*w;if(!(**P&&P++||n&7936)){
while(abs((X=rand()%76)-*x+2)-*w<6);++X;P=T;}(n=rand()&31)<3&&(d=n);!d&&--*x<=
*w&&(++*x,++d)||d==2&&++*x+*w>79&&(--*x,--d);signal(i,u);}void e(){signal(14,
SIG_IGN);printf("\e[0q\ecScore: %u\n",s);system("stty echo -cbreak");}int main
(int C,char**V){atexit(e);(C<2||*V[1]!=113)&&(f=(C=*(int*)getenv("TERM"))==(
int)0x756E696C||C==(int)0x6C696E75);srand(getpid());system("stty -echo cbreak"
);h(0);u(14);for(;;)switch(getchar()){case 113:return 0;case 91:case 98:c(44,k
=-1);case 32:case 110:c(46,k=0);case 93:case 109:c(47,k=1);c(49,h(0));c(50,h(1
));c(51,h(2));c(52,h(3));}}


löste sich dann auf in

C++:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/time.h>
#include <signal.h>

#define LEFT (-1)
#define RIGHT (1)
#define FWD   (0)

#define MAX_TRACK_INDEX (21)
#define MAX_TREE_INDEX   (4)

int  track[] = { 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
                 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
                 40, 40},
     width [] = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
                  8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8},
     led   [] = { 2, 3, 1, 0};

char delim [] = { '\\', '|', '/' },
    *tree  [] = {"  |",
                 "  |",
                 "%\\|/%",
                 " %%%",
                 ""};
int  tree_ix  = MAX_TREE_INDEX,
     tree_pos,
     delim_ix =   1,
     pos      =  40,
     oldpos   =  40,
     steer    = FWD,
     lauf,
     speed    =  -1,
     gear     =   0,
     sound_on =   0;

unsigned int score = 0;

void do_main (int sig) {
  int n;

  pos += steer;
  printf ("\233;%uH\233L%c\233;%uH%c\233;%uH%s\23322;%uH@\23323;%uH \n",
          track[0] - width[0], delim[delim_ix], track[0] + width[0],
          delim[delim_ix], tree_pos, tree[tree_ix], pos, oldpos);

  if (abs (pos - track[MAX_TRACK_INDEX]) >= width[MAX_TRACK_INDEX])
    exit (0);

  if (speed != gear*8) {
    struct itimerval t = { 0, 0, 0, 0 };

    speed += (speed < gear*8) ? 1 : -1;

    t.it_interval.tv_usec = t.it_value.tv_usec = 72000 / (speed / 8 + 1);
    setitimer (0, &t, 0);

    if(sound_on) printf ("\e[10;%u]", speed + 24);
  }

  if(sound_on) putchar (7);

  score += (9 - width[MAX_TRACK_INDEX]) * (speed / 8 + 1);
  oldpos = pos;

  for(lauf = MAX_TRACK_INDEX; lauf > 0; --lauf) {
    width[lauf] = width[lauf - 1];
    track[lauf] = track[lauf - 1];
  }

  if((n = rand ()) % 256 == 0 && width[0] > 1)
    --width[0];

  if (tree[tree_ix][0]) {
    ++tree_ix;
  } else if(!(n&0x1f00)) {
    while (abs ((tree_pos = rand () % 76) - track[0] + 2) - width[0] < 6);
    ++tree_pos;
    tree_ix = 0;
  }

  if((n = rand () & 31) < 3)
    (delim_ix = n);

  if(delim_ix == 0 && --track[0] - width[0] <= 0){
    ++track[0];
    ++delim_ix;
  } else if(delim_ix == 2 && ++track[0] + width[0] >= 80) {
    --track[0];
    --delim_ix;
  }

  signal (SIGALRM, do_main);
}

void do_on_exit () {
  signal (SIGALRM, ((__sighandler_t) 1));
  printf ("\e[0q\ecScore: %u\n", score);
  system ("stty echo -cbreak");
}

int main (int argc, char *argv[]) {
  int term;
  char c;

  atexit (do_on_exit);

  if((argc < 2 || *argv[1] != 113)) {
    term = *(int*) getenv("TERM");
    if (term == (int) 0x756E696C || term == (int) 0x6C696E75)
      sound_on = 1;
  }

  srand (getpid ());
  system ("stty -echo cbreak");

  printf("\e[%uq", led[gear]);

  do_main (SIGALRM);

  for(;;)
    switch (c = getchar ()) {
    case 'q':
      return 0;
    case '[':
    case 'b':
    case ',':
      steer = LEFT;
      continue;
    case ' ':
    case 'n':
    case '.':
      steer = FWD;
      continue;
    case ']':
    case 'm':
    case '/':
      steer = RIGHT;
      continue;
    case '1':
    case '2':
    case '3':
    case '4':
      gear = c - '1';
      printf ("\e[%uq", led[gear]);
      continue;
    }
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 20.01.2004 um 00:37 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: