Created
September 13, 2009 17:51
-
-
Save ashgti/186256 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// I found this on a forum, thought it was awesome, I take no credit for this code | |
#include <ncurses.h> | |
#include <inttypes.h> | |
#define GG(T,C) attrset(A_BOLD*!(T)|COLOR_PAIR(C%2+1)); | |
#define AGG A&2?KEY_UP:KEY_DOWN:A&1?KEY_RIGHT:KEY_LEFT | |
#define AC(G) init_pair(G/2,G,nodelay(stdscr,G/3)); | |
#define TCT(A,G,C) mvaddch(A+CTT*6+4,CGA*12+G,C) | |
#define ATG srand(time(0)); initscr(); cbreak(); \ | |
noecho(); start_color(); keypad(stdscr,1); | |
#define CAT mvprintw(2,40,"%d",TC) | |
#define T(T) #T#T#T#T#T#T T | |
#define GAT int main() | |
#define AAA refresh() | |
#define G(G) while(G) | |
#define A(A) A { A } | |
#define TAG endwin() | |
#define TCA clock() | |
#define GCA clear() | |
#define CCC rand() | |
#define CC getch() | |
#define GA return | |
typedef uint32_t G; | |
typedef uint16_t CT; | |
G AA[1<<16]; G GT[1<<16],CAA,CA,CTG,TA,CG,CTT,CGA,TC,T,GTC; | |
char *ACG="HXXTP02^OCBHL\\XP``T^NDP800SQSW\\X@@@0c13RZLLH<WWWWWWWW\0\0.jW\0\0\0\0\0\0\0Wq.\0'9W\0\0\0\0\0\0\0WP'\0\0jb\0\0WW\0\0007F\0\0WWWWWWWWBjPWWbo^^WW^^9WWP^__WW__6,D:^HRioV;:VztZ" | |
,*GCC, | |
*AGT,GTT []=T(; | |
G AG; G TG; G AC; G C; | |
G A=0; G AAG; G TT; G | |
GG; G AT (CT A){ GA A | |
%4* 2>> A%4; } CT GC | |
(){ AC=!(AAG&(CA/=2)); CTG=15*CA*CA/4; G A | |
=TG; GA AC||(A&&AT(A/CA/CA)); } CT GTCA(G C,G | |
A,G CG ){ GG(C>=A, | |
C)G(!A )GA ( C&& | |
CC)*CG *TAG; CG | |
+=(C<A)<<(G)20; G(TCT(0,C%16*3-34, 302[C%16*2+GTT] | |
)); AAA; G(CG>( G)TCA); GA CG^ GTCA(C+3,A-1,CG); } | |
G CGAC( CT T,G | |
A,G C,G AA , G | |
AG){ GA(AA &&( CA | |
=4)&&(CGAC(1+T,1+A,C,--AA,AG)?CGAC(ACG[T], | |
AG,0,C,A):ACG[T]&&TCT(AG,A,ACG[T])),C); | |
} CT TGA(G A){ CT | |
T=1; CT C=- T; *AA= | |
A; *GT=3; G (++C^T){ | |
G((TA=AA[C])/2&!(TT=(TG= | |
GT[ C]+16)&15)) | |
GA TG>>4; | |
CA=4; AAG= TA>>2 | |
*TT; A(GC( )?(AA[T]= | |
TA^1<<2*TT<<AT(AAG),GT[T++] | |
=TG^ CTG>> AC) :2; )} GA 0; } G | |
ACC(){ G T= 4; G A= | |
1; G C=1; TC=TGA | |
(GG=CCC); G((A*= | |
2)<C||(C<<=A=1)<T||(T*=C=2)){ G(TGA(AG=GG^T^C | |
^A)>TC) { G((TC=TGA (GG=AG))> CAA){ CAA=TC; CAT; | |
} G( TC >> 6 ) | |
GA 1 ; C=1; T | |
= 2; } G(1+CC) | |
GA 1; } GA 0; } GAT{ AGT=GCC=GTT; G(( T=*++GCC))64- | |
(72&T)?1:(*AGT ^=T/4%2<<A%8, 7&(A+=5))?-1:(*++AGT= | |
CAA=C=0 ); ATG AC | |
(4 ); G (!ACC()); | |
AC (2); G(C+1){ G( | |
!C){ C=TG=3; CG=1; TA=GG; TC=CAA; } GCA; | |
TT=TG; A(A(A(A(++TT; A=CG^=(TT&=15)& | |
3?1 :2; CTT= TT/4; | |
CGA=CTT %2*3^3^TT%4 | |
;AAG=TA >>2*TT; A=CG^ | |
AAG; GG (TT ^TG, | |
GTC=TT)CGAC | |
(GTC&&A&2 ?134 | |
:138,TT& 0,6,6,A&1?0 | |
:5); CGAC (128|A %2*3, | |
A&2?3:0,11,3,0); ))))CAT; G(TA/ | |
2&!TG)GA GTCA(GCA,CAA/4&16,TCA); ) | |
C = CC- 114; TT=0; | |
A(G(GC ()&&TC&&C+ | |
114 == (CA&2?AGG) | |
){ --TC; A^=TG%2* (2-AT(A)); C=TCA; A(A(T=0; { | |
GG(1,TG); A(A(A(A(A(A(G C=TT/2^TG%2?2:1; TCT(T%6, | |
T% 11, 32+ 55*( | |
ACG[11 *AT(TT) | |
+22*AT( A)+ ((A | |
^2)&C?65-T:T)%11]>>((A|C)%4/3?T:65-T)%6&1)); T++; | |
)))))) TT++; AAA; } C+=1<<16; G(C>(G) TCA); )) | |
CG^=CA; TA ^=1 | |
<<AT(AAG) <<TG *2; | |
TG^=CTG>> AC; } )} | |
GA TAG; } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment