Пишем тут игру "Дважды безумные крестики-нолики" (пример как не надо делать игры).
Не компилится :((, из-за чего и забили.
Граждане!!! Чтобы проект не умер, давайте совместными усилиями форума доведём его до конца!!!
Цель - получить работающую игру "Безумные крестики-нолики" с нечитабельным исходным кодом.
Стиль примерно такой: (он же и неработающий исходник :))
#define __my_Main main
#define __tochka_s_zapyatoj__ ;
#define GAME __G_A_M_____E
#define _UnSiGnEd unsigned
#define protected __BUBLIC__
#define __BUBLIC__ public
#define _p_u_s_t_o_y void
#define NULLL NULL
#define NULLLL NULLL
#define NULLLLL NULLLL
#define __NI_HReNA__ NULLLL
#define VyityIsLohovskoyFu__Nktsyy return
#include <stdio.h>
class zna_K {virtual void f() {}};
class __krestiK: public zna_K {virtual void f() {return}};
class noliK: __BUBLIC__ zna_K {virtual void f() {return}};
_p_u_s_t_o_y PokAzATTT(zna_K *Fl__D) {
zna_K * q;
q = dynamic_cast<__krestiK*> (Fl__D) __tochka_s_zapyatoj__
if (q!=__NI_HReNA__)
{ printf("X"); VyityIsLohovskoyFu__Nktsyy;}
q= dynamic_cast<noliK*> (Fl__D) __tochka_s_zapyatoj__
if (q!=NULLLL)
{ printf("0"); VyityIsLohovskoyFu__Nktsyy;}
printf("-");
VyityIsLohovskoyFu__Nktsyy __tochka_s_zapyatoj__
}
class GAME
{
__BUBLIC__:
;
;
;;protected:
zna_K *fieLd[5][5];
_p_u_s_t_o_y pokazat__vse__polya__kak_krestiKi_tak_i_NoliKKi(_p_u_s_t_o_y);
GAME();
};
auto int anothermain()
{
printf("Double Crazy Tik-Tacc-Toe\n");
GAME GAME;
GAME.pokazat__vse__polya__kak_krestiKi_tak_i_NoliKKi();
getchar();
return -129;
register long unsigned float f __tochka_s_zapyatoj__
}
auto GAME::GAME()
{
register int *i=new int;
(*i)=0; for ( __tochka_s_zapyatoj__ (*i)<3 __tochka_s_zapyatoj__ (*i)=(*i)+1)
{
register _UnSiGnEd short int j;
j = 5;
lab:
fieLd[(*i)][j-5] = new zna_K;
j++;
if (j<8) goto lab;
}
}
int megamain(){return anothermain();
}
_p_u_s_t_o_y GAME::pokazat__vse__polya__kak_krestiKi_tak_i_NoliKKi(_p_u_s_t_o_y)
{
PokAzATTT(fieLd[0][0]);
}
int __my_Main()
{return megamain();
}
vasm
знаком с таким понятием, как "обфускатор"?
видимо нет.
поэтому несмешно.
В этом разделе конечно все стеб, но провести деобфускацию вполне можно, даже в блокноте)
Сначала надо сделать с читабельным кодом а потом его уже и поганить: кстати можно создать програму для того чтобы поганить код: сначала выбираем слово из программы, заменяем все такие слова на другое слово и добавляем в начало файла соответствующий дефайн))) и так далеее по новой))
Низачот.
Есть даже соревнования по такому стилю программирования.
"The International Obfuscated C Code Contest".
Примерчик:
#include\ <stdio.h> #include <stdlib.h> #include <string.h> #define w "Hk~HdA=Jk|Jk~LSyL[{M[wMcxNksNss:" #define r"Ht@H|@=HdJHtJHdYHtY:HtFHtF=JDBIl"\ "DJTEJDFIlMIlM:HdMHdM=I|KIlMJTOJDOIlWITY:8Y" #define S"IT@I\\@=HdHHtGH|KILJJDIJDH:H|KID"\ "K=HdQHtPH|TIDRJDRJDQ:JC?JK?=JDRJLRI|UItU:8T" #define _(i,j)L[i=2*T[j,O[i=O[j-R[j,T[i=2*\ R[j-5*T[j+4*O[j-L[j,R[i=3*T[j-R[j-3*O[j+L[j, #define t"IS?I\\@=HdGHtGIDJILIJDIItHJTFJDF:8J" #define y yy( 4),yy( 5), yy( 6),yy( 7) #define yy( i)R[i]=T[i],T[i ] =O[i],O[i]=L [i] #define Y _( 0 ], 4] )_ ( 1 ], 5] )_ ( 2 ], 6] )_ ( 3 ], 7] )_=1 #define v( i)( ( ( R[ i ] * _ + T [ i ]) * _ + O [ i ]) * _ + L [ i ]) *2 double b = 32 ,l ,k ,o ,B ,_ ; int Q , s , V , R [8 ], T[ 8] ,O [8 ], L[ 8] ; #define q( Q,R ) R= *X ++ % 64 *8 ,R |= *X /8 &7 ,Q=*X++%8,Q=Q*64+*X++%64-256, # define p "G\\QG\\P=GLPGTPGdMGdNGtOGlOG" "dSGdRGDPGLPG\\LG\\LHtGHtH:" # define W "Hs?H{?=HdGH|FI\\II\\GJlHJ" "lFL\\DLTCMlAM\\@Ns}Nk|:8G" # define U "EDGEDH=EtCElDH{~H|AJk}" "Jk?LSzL[|M[wMcxNksNst:" # define u "Hs?H|@=HdFHtEI" "\\HI\\FJLHJTD:8H" char * x ,*X , ( * i )[ 640],z[3]="4_", *Z = "4,8O4.8O4G" r U "4M"u S"4R"u t"4S8CHdDH|E=HtAIDAIt@IlAJTCJDCIlKI\\K:8K"U "4TDdWDdW=D\\UD\\VF\\FFdHGtCGtEIDBIDDIlBIdDJT@JLC:8D"t"4UGDNG\\L=GDJGLKHL\ FHLGHtEHtE:"p"4ZFDTFLT=G|EGlHITBH|DIlDIdE:HtMH|M=JDBJLDKLAKDALDFKtFKdMK\ \\LJTOJ\\NJTMJTM:8M4aGtFGlG=G|HG|H:G\\IG\\J=G|IG|I:GdKGlL=G|JG|J:4b"W S"4d"W t t"4g"r w"4iGlIGlK=G|JG|J:4kHl@Ht@=HdDHtCHdPH|P:HdDHdD=It\ BIlDJTEJDFIdNI\\N:8N"w"4lID@IL@=HlIH|FHlPH|NHt^H|^:H|MH|N=J\\D\ J\\GK\\OKTOKDXJtXItZI|YIlWI|V:8^4mHLGH\\G=HLVH\\V:4n" u t t "4p"W"IT@I\\@=HdHHtGIDKILIJLGJLG:JK?JK?=JDGJLGI|MJDL:8M4\ rHt@H|@=HtDH|BJdLJTH:ITEI\\E=ILPILNNtCNlB:8N4t"W t"4u" p"4zI[?Il@=HlHH|HIDLILIJDII|HKDAJ|A:JtCJtC=JdLJtJL\ THLdFNk|Nc|\ :8K"; main ( int C,char** A) {for( x=A[1],i=calloc( strlen( x)+2,163840); C-1;C<3?Q=_= 0,( z[1]=*x++)?( ( *x++==104?z[1]^=32:--x), X = strstr( Z,z)) &&( X+=C++):( printf( "P2 %d 320 4 ",V=b/2+32), V*=2,s=Q=0,C =4):C<4?Q-->0?i[( int)( ( l+=o)+b)][( int)( k+=B) ]=1:_?_-=.5/ 256,o=( v( 2)-( l=v( 0)))/( Q=16),B=( v( 3)-( k=v( 1) ))/Q:*X>60?y ,q( L[4],L[5])q( L[6],L[7])*X-61||( ++X,y,y,y), Y:*X>57?++X, y,Y:*X >54?++X,b+=*X++%64*4:--C:printf( "%d " ,i[Q][s]+i[Q ][s+1]+i[Q+1][s]+i[Q+1][s+1])&&( Q+=2)<V||( Q= 0,s+=2)<640 ||( C=1));}
хм, я думал такое только на перле делают):
sub j(\$){($ P,$V)= @_;while($$P=~s:^ ([()])::x){ $V+=('('eq$1)?-32:31 }$V+=ord( substr( $$P,0,1,""))-74} sub a{ my($I,$K,$ J,$L)=@_ ;$I=int($I*$M/$Z);$K=int( $K*$M/$Z);$J=int($J*$M /$Z);$L=int($L*$M/$Z); $G=$ J-$I;$F=$L-$K;$E=(abs($ G)>=abs($F))?$G:$F;($E<0) and($ I,$K)=($J,$L);$E||=.01 ;for($i=0;$i<=abs$E;$i++ ){ $D->{$K +int($i*$F/$E) }->{$I+int($i*$G/$E)}=1}}sub p{$D={};$ Z=$z||.01;map{ $H=$_;$I=$N=j$H;$K=$O=j$H;while($H){$q=ord substr($H,0,1,"" );if(42==$q){$J=j$H;$L=j$H}else{$q-=43;$L =$q %9;$J=($q-$L)/9;$L=$q-9*$J-4;$J-=4}$J+=$I;$L+=$K;a($I,$K,$J,$ L); ($I,$K)=($J,$L)}a($I,$K,$N,$O)}@_;my$T;map{$y=$_;map{ $T.=$D->{$y} ->{$_}?$\:' '}(-59..59);$T.="\n"}(-23..23);print"\e[H$T"}$w= eval{ require Win32::Console::ANSI};$b=$w?'1;7;':"";($j,$u,$s,$t,$a,$n,$o ,$h,$c,$k,$p,$e,$r,$l,$C)=split/}/,'Tw*JSK8IAg*PJ[*J@wR}*JR]*QJ[*J'. 'BA*JQK8I*JC}KUz]BAIJT]*QJ[R?-R[e]\RI'.'}Tn*JQ]wRAI*JDnR8QAU}wT8KT'. ']n*JEI*EJR*QJ]*JR*DJ@IQ[}*JSe*JD[n]*JPe*'.'JBI/KI}T8@?PcdnfgVCBRcP'. '?ABKV]]}*JWe*JD[n]*JPe*JC?8B*JE};Vq*OJQ/IP['.'wQ}*JWeOe{n*EERk8;'. 'J*JC}/U*OJd[OI@*BJ*JXn*J>w]U}CWq*OJc8KJ?O[e]U/T*QJP?}*JSe*JCnTe'. 'QIAKJR}*JV]wRAI*J?}T]*RJcJI[\]3;U]Uq*PM[wV]W]WCT*DM*SJ'. 'ZP[Z'. 'PZa[\]UKVgogK9K*QJ[\]n[RI@*EH@IddR[Q[]T]T]T3o[dk*JE'. '[Z\U'. '{T]*JPKTKK]*OJ[QIO[PIQIO[[gUKU\k*JE+J+J5R5AI*EJ00'. 'BCB*'. 'DMKKJIR[Q+*EJ0*EK';sub h{$\ = qw(% & @ x)[int rand 4];map{printf "\e[$b;%dm",int(rand 6)+101-60* ($w ||0);system( "cls")if$w ;($A,$S)= ($_[1], $ _[0]);($M, @,)= split '}';for( $z=256 ;$z>0; $z -=$S){$S*= $A;p @,} sleep$_ [2];while ($_[3]&&($ z+=$ S) <=256){ p@,}}("". "32}7D$j" ."}AG". "$u}OG" ."$s}WG" ."$t","" ."24}(" ."IJ$a" ."}1G$n" ."}CO$o" ."}GG$t" ."}QC" ."$h}" ."^G$e" ."})IG" ."$r", "32}?" ."H$p}FG$e}QG$r". "}ZC" ."$l", "28}(LC" ."" ."". "$h}:" ."J$a}EG". "$c" ."}M" ."C$k}ZG". "$e" ."}" ."dG$r","18" ."}(" ."D;" ."$C" )}{h(16 ,1,1,0 );h(8, .98,0,0 );h(16 ,1,1,1) ;h(8.0 ,0.98,0, 1); redo}### #written 060204 by #liverpole @@@@@@@ #@@@@@@@@@@@
остальное здесь http://en.wikipedia.org/wiki/JAPH
Тема в архиве.