Как стать автором
Обновить

Комментарии 29

НЛО прилетело и опубликовало эту надпись здесь
Давно текст гифом не жали.
В PNG вышло больше, представьте себе.
Ваше кунг-фу круче.
У вас «image format holywar detector» сломался.
>Давно текст гифом не жали.

Угу, при том, что Хабр прекрасно умеет подсвечивать код самостоятельно. И вполне неплохо прожевал победителя:
                                       /*
                                      +
                                     +
                                    +
                                    +
                                    [         >i>n[t
                                     */   #include<stdio.h>
                        /*2w0,1m2,]_<n+a m+o>r>i>=>(['0n1'0)1;
                     */int/**/main(int/**/n,char**m){FILE*p,*q;int        A,k,a,r,i/*
                   #uinndcelfu_dset<rsitcdti_oa.nhs>i/_*/;char*d="P%"   "d\n%d\40%d"/**/
                 "\n%d\n\00wb+",b[1024],y[]="yuriyurarararayuruyuri*daijiken**akkari~n**"
          "/y*u*k/riin<ty(uyr)g,aur,arr[a1r2a82*y2*/u*r{uyu}riOcyurhiyua**rrar+*arayra*="
       "yuruyurwiyuriyurara'rariayuruyuriyuriyu>rarararayuruy9uriyu3riyurar_aBrMaPrOaWy^?"
      "*]/f]`;hvroai<dp/f*i*s/<ii(f)a{tpguat<cahfaurh(+uf)a;f}vivn+tf/g*`*w/jmaa+i`ni("/**
     */"i+k[>+b+i>++b++>l[rb";int/**/u;for(i=0;i<101;i++)y[i*2]^="~hktrvg~dmG*eoa+%squ#l2"
     ":(wn\"1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju {stkjalor(stwvne\"gt\"yogYURUYURI"[
     i]^y[i*2+1]^4;/*!*/p=(n>1&&(m[1][0]-'-'||m[1][1]  !='\0'))?fopen(m[1],y+298):stdin;
      /*y/riynrt~(^w^)],]c+h+a+r+*+*[n>)+{>f+o<r<(-m]    =<2<5<64;}-]-(m+;yry[rm*])/[*
       */q=(n<3||!(m[2][0]-'-'||m[2][1]))?stdout /*]{     }[*/:fopen(m[2],d+14);if(!p||/*
       "]<<*-]>y++>u>>+r >+u+++y>--u---r>++i+++"  <)<      ;[>-m-.>a-.-i.++n.>[(w)*/!q/**/)
    return+printf("Can "  "not\x20open\40%s\40"    ""       "for\40%sing\n",m[!p?1:2],!p?/*
  o=82]5<<+(+3+1+&.(+  m  +-+1.)<)<|<|.6>4>-+(>    m-        &-1.9-2-)-|-|.28>-w-?-m.:>([28+
 */"read":"writ");for  (   a=k=u= 0;y[u];  u=2    +u){y[k++   ]=y[u];}if((a=fread(b,1,1024/*
,mY/R*Y"R*/,p/*U*/)/*          R*/ )>/*U{  */   2&& b/*Y*/[0]/*U*/=='P' &&4==/*"y*r/y)r\}
*/sscanf(b,d,&k,& A,&           i,  &r)&&        !   (k-6&&k -5)&&r==255){u=A;if(n>3){/*
]&<1<6<?<m.-+1>3> +:+ .1>3+++     .   -m-)      -;.u+=++.1<0< <; f<o<r<(.;<([m(=)/8*/
u++;i++;}fprintf   (q,    d,k,           u      >>1,i>>1,r);u  = k-5?8:4;k=3;}else
  /*]>*/{(u)=/*{   p> >u  >t>-]s                >++(.yryr*/+(    n+14>17)?8/4:8*5/
     4;}for(r=i=0  ;  ;){u*=6;u+=                (n>3?1:0);if    (y[u]&01)fputc(/*
      <g-e<t.c>h.a r  -(-).)8+<1.                 >;+i.(<)<     <)+{+i.f>([180*/1*
      (r),q);if(y[u   ]&16)k=A;if                               (y[u]&2)k--;if(i/*
      ("^w^NAMORI; {   I*/==a/*"                               )*/){/**/i=a=(u)*11
       &255;if(1&&0>=     (a=                                 fread(b,1,1024,p))&&
        ")]i>(w)-;} {                                         /i-f-(-m--M1-0.)<{"
         [ 8]==59/* */                                       )break;i=0;}r=b[i++]
            ;u+=(/**>>                                     *..</<<<)<[[;]**/+8&*
            (y+u))?(10-              r?4:2):(y[u]         &4)?(k?2:4):2;u=y[u/*
             49;7i\(w)/;}             y}ru\=*ri[        ,mc]o;n}trientuu ren (
             */]-(int)'`';}             fclose(          p);k= +fclose( q);
              /*] <*.na/m*o{ri{                       d;^w^;}  }^_^}}
               "   */   return  k-                -1+   /*\'   '-`*/
                     (   -/*}/   */0x01        );       {;{    }}
                            ;           /*^w^*/        ;}

спасибо человеку, который скинул картинку, потому что с телефона это видится вот так

Кстати, без подсветки сложно разобраться.
А, ну теперь-то всё очевидно
Конкурс на самый запутанный код прошел, теперь начался конкурс на самую лучшую подсветку синтаксиса. Уже есть 3 претендента, но хабр явно лидирует. Спешите отправлять нам заявки!
Какой-то бессмысленный конкурс, имхо.
Я понимаю, если бы оценивалось именно хитровыкрученное использование особенностей языка (коих в сях предостаточно).
А просто по-дурацки назвать переменные и странно отформатировать код — это неинтересно. Это скорее конкурс ASCII-арта.
Наоборот, было бы круто видеть чисто и правильно отформатированные сорцы — но с нифига непонятным действом!
Тогда это был бы конкурс совсем с другой задачей.
Программа умеет уменьшать разную графику, в том числе ASCII-графику. Поскольку её исходный код тоже отформатирован в виде ASCII-графики, то она может уменьшить и свой исходный код. В результате получается другая валидная программа на C, которая может обрабатывать текст. И это тоже ещё не конец. Обработав код вторично с помощью новой программы, получается третья функциональная программа (здесь компилятор gcc уже начинает выдавать некоторые предупреждения, но всё равно сделает исполняемый файл).

Тоесть это для вас не особенность и не показатель уровня создателя? Если в этом всём вы различаете только
по-дурацки назвать переменные и странно отформатировать код
то интересно ли вам вообще на хабре находится?)
Первый абзац — это что именно та программа делает.
Сложность выполняемой задачи (многоступенчатая генерация кода или там игра в шахматы) это круто и наверняка это дополнительное средство произвести впечатление на жюри, только к декларируемой цели конкурса (непонятный код) прямого отношения не имеет.
А я писал именно об основной цели. Тут она, безусловно, достигнута… но имхо малоинтересными и неизящными способами.
Так примите участие, покажите всем — как надо правильно.
Делов-то.
Исходя из…

Участвовать в конкурсе могут готовые программы размером меньше 4096 байт, при этом количество значимых символов, без учёта пробелов, знаков табуляции и знаков; ( ), не должно превышать 2048.


… и того, что сделали люди — вы наверное шутите. Программа победителя 3273 символа. Как по мне, тут необходимо обладать очень хорошими знаниями в Си.
Читайте мой ответ выше. Я нигде не ставил под сомнение квалификацию тех конкретных победителей. Я говорил, именно о самом конкурсе — о декларируемых целях/условиях и критериях судейства де-факто.
Программа-победитель напомнила мне также интересный квайн, выполненный в виде игры «жизнь».

Вот код для C#:
using System;class G  /* GAME OF LIFE by Igor Ostrovsky */  {static string[]S={
"############################################################################",
"#                                                               * *        #",
"#  ***                                                         *           #",
"#                                       *                      *           #",
"#                                     * *                      *  *        #",
"#                           **      **            **           ***         #",
"#                          *   *    **            **                       #",
"#               **        *     *   **                                     #",
"#               **        *   * **    * *                                  #",
"#                         *     *       *                                  #",
"#                          *   *                                           #",
"#                           **                                             #",
"#   **     **                                                              #",
"#    **   **                                        *  *                   #",
"# *  * * * *  *                                         *                  #",
"# *** ** ** ***                                     *   *                  #",
"#  * * * * * *                                       ****                  #",
"#   ***   ***                                                              #",
"#                                                                          #",
"#   ***   ***                                                              #",
"#  * * * * * *            *                                                #",
"# *** ** ** ***           *           *  *                             *** #",
"# *  * * * *  *                           *                           *  * #",
"#    **   **             ***          *   *                **            * #",
"#   **     **                          ****                              * #",
"#                                                                     * *  #",
"############################################################################",
};static void Main(){string T="\",r=\"using System;class G  /* GAME OF LIFE b"+
"y Igor Ostrovsky \"+\"*/  {static string[]S={\\n\";int p=31,i,j,b,d;for(i=0;"+
"i<27;i++){r+='\"'; for(j=0;j<76;j++){if(S[i][j]!='#'){b=0;for(d=0;d<9;d++)if"+
"(S[i-1+d/3][j-1+d%3]=='*')b++;r+=b==3 ||(S[i][j]=='*'&&b==4)?'*':' ';} else "+
"r+='#';}r+=\"\\\",\\n\";}r+=\"};static\"+\" void Main(){string T=\\\"\";fore"+
"ach(var c in T){if(c=='\\\\'||c=='\"'){r+='\\\\';p++;} r+=c; if(++p>=77){r+="+
"\"\\\"+\\n\\\"\";p=1;}} foreach(var c in T){r+=c;if(++p%79==0)r+='\\n';}Cons"+
"ole.Write(r);}}",r="using System;class G  /* GAME OF LIFE by Igor Ostrovsky "+
"*/  {static string[]S={\n";int p=31,i,j,b,d;for(i=0;i<27;i++){r+='"'; for(j=0;
j<76;j++){if(S[i][j]!='#'){b=0;for(d=0;d<9;d++)if(S[i-1+d/3][j-1+d%3]=='*')b++;
r+=b==3 ||(S[i][j]=='*'&&b==4)?'*':' ';} else r+='#';}r+="\",\n";}r+="};static"
+" void Main(){string T=\"";foreach(var c in T){if(c=='\\'||c=='"'){r+='\\';p++
;} r+=c; if(++p>=77){r+="\"+\n\"";p=1;}} foreach(var c in T){r+=c;if(++p%79==0)
r+='\n';}Console.Write(r);}}
Makefile порадовал:
##################
# 133t hacker rulz
##################
#
love:
@echo 'not war?'

haste:
$(MAKE) waste

waste:
@echo 'waste'

easter_egg:
@echo you expected to mis-understand this $${RANDOM} magic
@echo chongo '' "/\\oo/\\"
@echo Readers shall not be disallowed from being unable to partly misunderstand this final echo.
@${TRUE}
$ make love
Not war.
Стандартное поведение bsd-make
$ make love
make: don't know how to make love. Stop

make: stopped in /home/dbanet

:(

$ freebsd-version
10.2-RELEASE
А мне из предыдущих нравится вот это:
main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}


unix определена как 1
По красоте кода мне больше вот этот понравился:

#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#define _ float

                  _ CRUSH(_*LEG,int ARM,_*FINGER) {
         _ GORE; for(GORE=0,--ARM; ARM>=0; --ARM)GORE+=FINGER[ARM]*ARM
     [LEG]; return GORE; } _*BITE(){ _*BRAIN=calloc(sizeof(_),1<<17);int TOE
  =getc(stdin),EYE,SKULL=0; while((EYE=getc(stdin))!=EOF){ ++BRAIN[(TOE<<8) +
 EYE]; ++SKULL; TOE=EYE; } if(SKULL)for(TOE=0; TOE<8<<13; ++ TOE)BRAIN [TOE]/=
 SKULL; return BRAIN; } _ CHEW(_*GUT,_ BONE[][1<<16]){ int GRR; for(GRR=0; GRR<
 6; ++GRR){ GUT[GRR+256*256]=powf(1+expf(-CRUSH(BONE[GRR],1<<16,GUT)),-1); BONE
 [6][50+GRR]=GUT[256*256+GRR]*(1.-GUT[(8<<13)+GRR]); } BONE[6][81]=1/(1 +expf(-
 CRUSH(GUT+(1<<16),6,BONE[6]))); return BONE[6][82]=BONE[6][81]*(1.-BONE[6][81]
 ),BONE[6][81]; } _ GNAW(_ FLESH,_ LEG[][2<<15],_*EYE){ int UG,MMM; LEG[6][13]=
 FLESH-CHEW(EYE,LEG); LEG[6][14]=LEG[6][ 82]*LEG[6][13]; for(UG=0; UG<6; ++UG){
 LEG[6][34]=LEG[6][UG+(1<<7)-14]*LEG[6][7<<1]*LEG[6][UG]; for(MMM=0; MMM<4<<14;
 ++MMM)LEG          [UG][MMM]+=LEG[6][34]*.3*EYE[MMM]; LEG[6][UG]+=.3*LEG[6][14
  ]*EYE[               256*256+UG]; } return powf(LEG[6]          [13],2); } _
  **EAT(               char*TOMB){ DIR*BONE = opendir(               TOMB); int
  BRAIN=               0; struct dirent*TOOTH; _**BODY               =0; while
 (BONE?(TOOTH=        readdir(BONE)):0){ if(  TOOTH->                d_name[0]
 !=46){ char*MOAN=malloc(strlen(TOMB)+strlen(TOOTH->d_name       )+1); sprintf(
 MOAN, "%s%s",TOMB,TOOTH ->d_name); if(freopen(MOAN, "r",stdin)){ BODY=realloc(
 BODY,sizeof(_*)*(BRAIN+1)); BRAIN ++ [BODY]=BITE(); } } } return BODY=realloc(
 BODY,(1+BRAIN)*sizeof(_*)),BODY[BRAIN]=0,BODY; } int main(int GRR,char **UGH){
 _ BRAINS[7][1<<16],***CORPSES; int PUS,OOZE,UG; for(srand(time(0)),PUS=0; PUS<
  7; ++PUS)for(OOZE=0; OOZE<4<<14; ++OOZE)BRAINS[PUS][OOZE]=rand()/(_)RAND_MAX
   -.5;fread(BRAINS,sizeof(BRAINS),1,stdin); if(*UGH[1]==45){ GRR-=2; CORPSES
    =malloc(                                                         sizeof(_
    **)*GRR                                                           ); for(
     PUS=0;                                                             PUS<
    GRR; ++             PUS)CORPSES[PUS]=EAT(UGH[2+PUS]);             for(UG=
     0; UG<atoi       (&(UGH[1][1])); ++UG){ BRAINS[6][97]=       0; for(PUS
      =0; PUS<GRR; ++PUS)for(OOZE=0; CORPSES[PUS][OOZE]; ++OOZE)BRAINS [6][
        97]+=GNAW(1.-(_) PUS/(GRR-1),BRAINS,CORPSES[PUS][OOZE]); fprintf(
         stderr,"%d: %f\n",UG,BRAINS[6][97]); } fwrite( BRAINS, sizeof(
          BRAINS),1,stdout); } else for(UG=1; UG<GRR; ++UG)if(freopen(
              UGH[UG],"r",stdin))fprintf(stderr,"%s %f\n",UGH[UG],
                       CHEW(BITE(),BRAINS)); return 0; }

Вообще, если пожертвовать ASCII-артом и повторной сборкой обработанной программы и отформатировать исходную программу-победителя, убрав при этом из неё комментарии и объединив некоторые строки, можно получить вполне читаемый и удобный для восприятия код, который каждый, кто хоть раз писал на чистом, без примесей, C, поймёт и сможет адаптировать под свои нужды, причём, с помощью этой программы можно так же обработать ASCII-арт исходной, не отформатированной, программы, получив тем самым валидный код новой программы.

#include<stdio.h>
int main(int n,char **m) {
	FILE *p, *q;
	int A, k, a, r, i;
	char *d = "P%d\n%d\40%d\n%d\n\00wb+",
	b[1024],
	y[]="yuriyurarararayuruyuri*daijiken**akkari~n**"
	"/y*u*k/riin<ty(uyr)g,aur,arr[a1r2a82*y2*/u*r{uyu}riOcyurhiyua**rrar+*arayra*="
	"yuruyurwiyuriyurara'rariayuruyuriyuriyu>rarararayuruy9uriyu3riyurar_aBrMaPrOaWy^?"
	"*]/f]`;hvroai<dp/f*i*s/<ii(f)a{tpguat<cahfaurh(+uf)a;f}vivn+tf/g*`*w/jmaa+i`ni(i+k[>+b+i>++b++>l[rb";
	int u;
	for (i = 0; i < 101; i++)
		y[i * 2] ^= "~hktrvg~dmG*eoa+%squ#l2"
		":(wn\"1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju {stkjalor(stwvne\"gt\"yogYURUYURI"[i] ^ y[i * 2 + 1] ^ 4;
	p = (n > 1 && (m[1][0] - '-' || m[1][1] != '\0')) ? fopen(m[1], y + 298): stdin;
	q = (n < 3 || !(m[2][0] - '-' || m[2][1])) ? stdout : fopen(m[2], d + 14);
	if(!p || !q)
		return +printf("Can not\x20open\40%s\40for\40%sing\n", m[!p ? 1 : 2], !p ? "read" : "writ");
	for (a = k = u = 0; y[u]; u = 2 + u) {
		y[k++] = y[u];
	}
	if((a = fread(b, 1, 1024, p)) > 2 && b[0] == 'P' && 4 == sscanf(b, d, &k, &A, &i, &r) && !(k - 6 && k - 5) && r == 255)	{
		u = A;
		if (n > 3) {
			u++;
			i++;
		}
		fprintf(q, d, k, u >> 1, i >> 1, r);
		u = k - 5 ? 8 : 4;
		k = 3;
	} else {
		(u) = +(n + 14 > 17) ? 8 / 4 : 8 * 5 / 4;
	}
	for(r = i = 0;;) {
		u *= 6;
		u += (n > 3 ? 1 : 0);
		if (y[u]&01)
			fputc(1 * (r), q);
		if (y[u] & 16)
			k = A;
		if (y[u] & 2)
			k--;
		if (i == a) {
			i = a = (u) * 11 & 255;
			if ( 1 && 0 >= (a = fread(b, 1, 1024, p)) && ")]i>(w)-;} {                                         /i-f-(-m--M1-0.)<{"[8] == 59)
				break;
			i = 0;
		}
		r = b[i++];
		u += (+8 & * (y + u)) ? (10 - r ? 4 : 2) : (y[u] & 4) ? (k ? 2 : 4) : 2;
		u = y[u] - (int)'`';
	}
	fclose(p);
	k = +fclose(q);
	return  k - -1 + (-0x01);
	{
		;
		{}
	}
	;;
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории