Skip to content

Instantly share code, notes, and snippets.

@GabrielFreeze
Last active May 7, 2024 12:05
Show Gist options
  • Save GabrielFreeze/bccb8a8d7a943fe6eef7cf991b4ecaf6 to your computer and use it in GitHub Desktop.
Save GabrielFreeze/bccb8a8d7a943fe6eef7cf991b4ecaf6 to your computer and use it in GitHub Desktop.
Prints Christmas Tree (with colour)
#include <stdio.h>
#include <stdint.h>
int main() {
uint64_t idx[766]={0x061861861861861c,0x0658618618618618,0x0199615280482483,0x025940a1d2045485,0x005205954a112192,0x001205209954a012,0x061861861861854a,
0x0618618618618618,0x06186187162806d8,0x0618618618618618,0x0242480119618618,0x005224205940a012,0x02030993ca0920c0,0x00592ca212180092,0x034a1d2086052009,
0x044a0520464891d9,0x061854a012192259,0x0618618618618618,0x02806d8618618618,0x0618618618618716,0x0658618618618618,0x0481655280481481,0x0480001655280481,
0x018905944a012147,0x005938a0d2045052,0x04ca0920820520c6,0x054a012002489099,0x0615280481481658,0x0618618618618618,0x02806d8618618618,0x07de561b2cae2556,
0x065882398a7639ec,0x0658615280482480,0x0288484181480002,0x02804830d20c564d,0x054a012112099610,0x0618618618618618,0x06d8618618618618,0x0b249a954f556280,
0x0ae5aebb28b6aae7,0x054a012152019618,0x0651280489252099,0x04ca092107052204,0x0102486081487099,0x02014840521d93ca,0x001205209961854a,0x054a01205205954a,
0x0618618618618618,0x058a01b618618618,0x0080091555555555,0x0482481658618443,0x0012112019615280,0x028248411219954a,0x00921c30520c4650,0x014905218164f289,
0x0241480653281052,0x0052001653285480,0x00994ca007052187,0x0288081488141485,0x040a012106480653,0x061854a012212019,0x0618618618618618,0x058a01b618618618,
0x061861861861861c,0x0212019618618618,0x04851d201954a012,0x0001052242650280,0x02520c705944a192,0x04831994ca009483,0x00194ca044484141,0x00194ca012041092,
0x00994ca012040092,0x02193ca012047052,0x00593ca052103052,0x005944a052108482,0x064f2854802120c1,0x06502814811120c6,0x0481655281481482,0x0618618615280481,
0x06d8618618618618,0x0618618618716280,0x0480658618618618,0x0112043655280482,0x0252145650281484,0x048009944a042487,0x009944a0c2483041,0x03ca0c34810c1487,
0x02844810c1480159,0x011214405200664f,0x04890c14811994ca,0x020605210764f280,0x04800416532840d2,0x005938a002489141,0x038a2121c3052086,0x0052203052085059,
0x010148218164e289,0x04831d938a0c2484,0x048265844a012047,0x0618618615280481,0x06d8618618618618,0x0618618618716280,0x0012012059618618,0x054a01209209954a,
0x019954a012252059,0x00816552854820d2,0x04ca0c5489081486,0x0092084052107059,0x004148508164e281,0x00c50594ca041487,0x064e2850d2144052,0x00c2482081484041,
0x00c40522470594ca,0x048304164e289052,0x00594ca2424810c1,0x0286052203052004,0x04800c14840c1653,0x00414852194ca002,0x005210264f281483,0x0480651289052041,
0x048511944a2120c9,0x01456502870920c4,0x00d940a1c3488092,0x061861854a0120d2,0x0618618618618618,0x061861861c58a01b,0x0012012059618618,0x028048148405954a,
0x0280487092001655,0x040a012007480655,0x0651280482252019,0x03ca141483101482,0x02874850c14810d9,0x00121c205220264f,0x04810c14850593ca,0x048908148164f281,
0x00c1052084651280,0x04861c164f286052,0x02194ca240052109,0x03ca1c4489041488,0x044a012082052099,0x044a052101052019,0x044a012142052019,0x044a012181052099,
0x00054841d2003059,0x04851d21430593ca,0x04851120193ca107,0x0012082480650280,0x061861861861854a,0x07162806d8618618,0x0481658618618618,0x04830d9615280480,
0x0484081655282481,0x0482041650284483,0x04860d940a001482,0x0086650281052004,0x064f2890d2240052,0x03ca092142052081,0x044a0121c2052019,0x044a0521c1052019,
0x044a012142052019,0x03ca0120c4052019,0x044a0121810520d9,0x0041487001482159,0x04880414890593ca,0x024105205944a001,0x018005219944a052,0x048925201944a012,
0x0480041480651280,0x0012209480651280,0x001208748209944a,0x00d20054841d940a,0x061861861861844a,0x058a01b618618618,0x061861861861861c,0x00d954a012092099,
0x00c1655280483482,0x0145655280488052,0x005944a002484192,0x0282212100052185,0x00921430520c2653,0x04820c148064f281,0x048108148064f283,0x04830c1480651282,
0x048210148164f280,0x01814830993ca147,0x04806532801c1484,0x00193ca241489081,0x001944a0121c1052,0x00193ca012104052,0x00993ca012183052,0x064f282487081487,
0x04ca1520c4052086,0x00921440521c1059,0x0101480101653280,0x018805938a182485,0x064e284092105052,0x0003483041484041,0x00120824830594ca,0x054a01209201954a,
0x0618618618618618,0x06186187162806d8,0x0481480658618618,0x0482152243655281,0x0482252204650281,0x00c5052205651280,0x01414821194ca0d2,0x0052205653280486,
0x04861594ca012146,0x02194ca043489181,0x038a102488181488,0x0281483181489199,0x0192187052083653,0x00870521c5653285,0x005204864e282252,0x0041653283052006,
0x04ca101480141487,0x00c34841c1487159,0x00070521830594ca,0x048314164e282092,0x005938a002486181,0x0287052046052009,0x048018148610164d,0x010148425938a201,
0x00c00594ca143488,0x06532840d2203052,0x044a0824872520c2,0x06552804880d2019,0x0618615280489480,0x001b618618618618,0x061861861861c58a,0x005954a0120d2019,
0x0481655280485052,0x00c005954a012203,0x00594ca012203052,0x0281112207052205,0x04881814861c164d,0x005214405934a041,0x018164e286052206,0x034a1824851c1487,
0x00521c7052142059,0x020148408164e281,0x020305938a003480,0x064d2820d2188052,0x00014831c1480101,0x00c605214505938a,0x048804164e281052,0x005938a1c14881c1,
0x0281052206052042,0x04831c148908164e,0x01c148719938a002,0x02000594ca241482,0x064e283052246052,0x04ca152146052048,0x0282486101485059,0x00521010520c364f,
0x018848120164f286,0x04831994ca000052,0x00193ca143483001,0x0481650280486152,0x015201954a0d2181,0x001205201954a092,0x054a01205209954a,0x001b618618618618,
0x001961861861c58a,0x048065854a012052,0x0044480655280482,0x000305219954a012,0x010148564f288112,0x00520593ca0c5489,0x048505944a252002,0x008164f280482141,
0x00d93ca2120c5052,0x064f289481081480,0x0651281488081480,0x0653280485201480,0x0651282485081488,0x03ca012085052041,0x02844821c1485119,0x0281489241480653,
0x0280485041480653,0x0280482041480651,0x02804850c1480651,0x02804880c148064f,0x02804880c148064f,0x028048708148064f,0x044a012248487651,0x040a012087481059,
0x044a012140052019,0x044a0120c0052019,0x06502804841d2019,0x061854a012101480,0x001b618618618618,0x061861861861c58a,0x06552804850d2019,0x019940a012147480,
0x03ca103052142052,0x01014870c1485099,0x00d2049484653285,0x019204005201944a,0x028048825201944a,0x0280482001480651,0x044a012089482651,0x044a141486252119,
0x044a083487252259,0x0651283482252019,0x001944a012209480,0x0480651280489252,0x021205940a012088,0x0488041651280487,0x00c164f2841521c7,0x0653280212189486,
0x011944a052189482,0x01d944a1120c7484,0x01d944a112244488,0x00d944a2521c5489,0x005944a092088486,0x0241651287489252,0x03ca1c0052003052,0x044a245482252199,
0x06552814820d2019,0x06502804830d2045,0x0615283488052142,0x058a01b618618618,0x000248065861861c,0x048615201954a012,0x0012109480650280,0x001218105205944a,
0x001200405201944a,0x00122020520593ca,0x001214205201944a,0x048125224305944a,0x00520470594ca245,0x0485653285252001,0x048364f2834800c1,0x048164f2834860c1,
0x0484651280488081,0x00993ca1094820c1,0x0289201487181488,0x009208305200164e,0x048608148264f282,0x0480081487651280,0x0142052201651286,0x008148164f284052,
0x00521c6651281481,0x000864f283092100,0x064f2860d2181052,0x064f2804890c1481,0x044a0920400521c4,0x0283486092044059,0x02120c44810c1651,0x048004148311944a,
0x04810c148064f282,0x010405200164f289,0x04861d94ca004052,0x02194ca207482101,0x03ca1c1480081486,0x0092183052186059,0x048425210864e286,0x04810920193ca181,
0x0280481481655280,0x058a01b618618615,0x010148065861861c,0x048909201954a012,0x00120c4480655280,0x028048919201954a,0x0280487041480650,0x0280489081480651,
0x02824820c1482651,0x00d220205218164f,0x04800c14880593ca,0x048610148264f285,0x048508148264f280,0x04810c1482651280,0x048410148264f280,0x048810148064f280,
0x048010148464f280,0x048110148264f280,0x018005224864f280,0x048124164f2820d2,0x064e285001481001,0x0287052202052202,0x02804830c148064f,0x028048204148064f,
0x0280484041480651,0x0280488081480651,0x0280483041480651,0x0280487001480651,0x0286489001480651,0x00d2182052184651,0x04810414800993ca,0x00c14801c1651280,
0x048914164e286483,0x021938a145482141,0x04ca005480081484,0x02800d20c5485159,0x054a012012059611,0x07162806d8618618,0x0280482480658618,0x0655280481480655,
0x00d954a012181480,0x0142650284486112,0x009944a012000052,0x03ca1814800c1482,0x0282052202052019,0x028048400148064f,0x0280487081480651,0x0280484041480651,
0x02804830c1480651,0x028048210148064f,0x028048710148064f,0x028048908148064f,0x0280481041480651,0x02804880c1480651,0x02804890c148064f,0x028248204148064f,
0x0012201052041651,0x001208305201944a,0x00122010520193ca,0x028048721201944a,0x044a012189486651,0x02874840414861d9,0x00921400521c164f,0x0181052047651280,
0x048304164f282092,0x00594ca004489081,0x02830d20830521c3,0x04810c14850c1653,0x00522400594ca241,0x00066532830d2003,0x064f2890521c1052,0x02850d20c0052102,
0x040a252045486651,0x001954a012152019,0x061861854a012092,0x06186187162806d8,0x005954a012052099,0x064f2834872521c1,0x01c1486081485081,0x02040520c60594ca,
0x048400164e286052,0x005938a105480201,0x02870d2146052183,0x04850c148604164e,0x00414850d94ca141,0x048104164f285485,0x01594ca0c1483101,0x064f284484041489,
0x03ca1d20c30521c3,0x0286482081486119,0x01920c305204964f,0x04841414811194ca,0x00814871994ca1c4,0x04862593ca081484,0x02194ca1814800c1,0x04ca2024870c1482,
0x0052203052040059,0x01830521c9653285,0x0052087653287052,0x00816532830d2203,0x04ca082489081488,0x0212084052241059,0x00440520820594ca,0x0488141653285052,
0x005938a003489101,0x0285092084052101,0x0483101480101653,0x0202052084653280,0x01014882193ca0d2,0x00520d94ca201480,0x0480651286052102,0x0480651280487041,
0x0480651280482001,0x061861854a012203,0x06587162806d8618,0x0480655280481480,0x019201954a012002,0x0001480650280481,0x00520c1651280481,0x048009944a012241,
0x0048653280486181,0x01994ca112047052,0x0653289483181482,0x0283489181482001,0x00d224605218664e,0x01814841c1653284,0x048525934a203485,0x005938a003484181,
0x0282052205052081,0x048214148100164e,0x0244052207653285,0x04871016532830d2,0x005938a241481181,0x0286092246052101,0x04841814801c164e,0x010148521938a201,
0x01c20594ca102486,0x064e284052006052,0x0288092107052006,0x0488181481041653,0x00520c205938a143,0x000164e282092086,0x038a182488141489,0x0283480181485199,
0x0280484181480653,0x001200605200264f,0x00d22050522193ca,0x00470521c364f280,0x00520994ca140052,0x048064f286092046,0x048064f280489101,0x00c164f280480101,
0x00d93ca1521c2052,0x03ca142486081483,0x044a0d21c0052159,0x06502804821d2019,0x001954a012203480,0x0480655280480092,0x001b618615280487,0x00c148165861c58a,
0x04860d201954a012,0x0012046480655280,0x001210105201940a,0x001204905201944a,0x00120480520194ca,0x00121460520194ca,0x00820522400593ca,0x0485181653289112,
0x064e280001485081,0x0282052007052041,0x0280486201480653,0x02824891c1480653,0x0001486181488653,0x00880520c2653288,0x01c1484653281252,0x0052042653281487,
0x00520d93ca012086,0x00520193ca1120c6,0x04831194ca1521c9,0x00593ca142482101,0x0100052240052247,0x048814148809938a,0x00070520194ca0c2,0x01c60520193ca012,
0x00450520193ca012,0x00850520193ca012,0x01460520193ca092,0x00c60520193ca012,0x018148864f281112,0x0041653287101489,0x06532890d2246052,0x064f280483141484,
0x064f281486141481,0x0285092180052007,0x025210948320164f,0x00420520c3653288,0x004148064f280092,0x0001481651280489,0x01d2081651280484,0x0092086650280485,
0x0112146650282485,0x048148405954a152,0x061c58a01b615281,0x0655281481487099,0x005954a092092104,0x001954a0920c3489,0x0480650280487192,0x015201940a0121c7,
0x0242483650280484,0x048621205954a012,0x0087052083651280,0x01014881194ca252,0x00520194ca1c1486,0x01d20193ca0121c3,0x00c1482650280481,0x020148564f283481,
0x00c1653281041481,0x0653282252246052,0x064f280482101480,0x0653282481201480,0x0653280481002480,0x0653280482201486,0x03ca0d2082052205,0x00814850c1480159,
0x04801814800593ca,0x048918148264f283,0x048414148164f280,0x001220548064f281,0x028048119201940a,0x044a012189480650,0x044a012082052019,0x03ca012183052019,
0x03ca012144052019,0x044a012142052019,0x0650280485212019,0x001940a012088480,0x0480651280481252,0x0480651280482001,0x015201940a0121c5,0x048048505954a012,
0x0480486001655281,0x0485485001650281,0x0092052241650286,0x06587162806d854a,0x005940a0d2092208,0x019940a1521120c3,0x0618615287481482,0x001954a012212019,
0x0480651280489212,0x009201940a0121c6,0x0480658615280482,0x0248481655280483,0x048711201944a012,0x0005485099610280,0x00c148311940a012,0x021210864f280483,
0x048114164f280487,0x01c20593ca012106,0x020864f280485212,0x0201651280485192,0x04816502804890d2,0x009211954a012183,0x048048165854a0d2,0x0112001483655281,
0x028648409209954a,0x054a0521c3480655,0x0650280482152019,0x061854a012242480,0x0655280485480658,0x0618615280482480,0x065861c58a01b618,0x0019615280480483,
0x00d201954a012092,0x001209201954a012,0x054a01205201954a,0x0281483481658618,0x0615283486483655,0x0052241487059618,0x0480112108655289,0x0088482181650287,
0x00521080593ca252,0x01c1653287052041,0x04ca201481041480,0x0286487252206059,0x0012145486041653,0x005210148311944a,0x061861861861854a,0x0615280481480658,
0x0012012099618618,0x054a01201209954a,0x061861c58a01b618,0x061854a012012059,0x054a012092019618,0x00d954a0120d2019,0x065861854a0d2112,0x040a044484112084,
0x0052103052043059,0x005218905938a0c3,0x00592ca188052049,0x03ca002480212003,0x0284481212203059,0x001208948814164f,0x04852521460593ca,0x00c74890c1653280,
0x01922010593ca012,0x01120c8651281483,0x0486181651284484,0x064d286141482181,0x0141488141487141,0x048625218964d289,0x00c94832593ca149,0x021210864f283252,
0x04841593ca108484,0x0486651284152145,0x0482480655286488,0x0280481480655280,0x0618618618618615,0x06186187162806d8,0x0102658618618618,0x005954a102484092,
0x0200052200052200,0x01860521860594ca,0x00c309934a186052,0x050a0c30920c3092,0x0092183092143099,0x00921c209950a1c3,0x009930a0020920c2,0x00400921c0092101,
0x024905214009930a,0x02060592ca0c9052,0x038a041052004052,0x01d2240052184059,0x01414851c1653286,0x008264d2810c1483,0x0286042483082489,0x048000248004264c,
0x048008264b281241,0x064c286002483042,0x0102488102487102,0x0102482102654288,0x0102654282102482,0x0282102482102482,0x0485082485082654,0x04861c164c285082,
0x064d2861c14861c1,0x040a242489092242,0x0618618618618618,0x061861c58a01b618,0x0488059618618618,0x0101655288052201,0x0280101480101480,0x04810c24810c264e,
0x04831426542810c2,0x0654283142483142,0x0142484142484142,0x0142484142654284,0x0142654284142484,0x0280142480142481,0x0485142484142654,0x0485142654285142,
0x0654285142485142,0x0142485142484142,0x0102485102654285,0x0102654283142489,0x0288102484102480,0x0483102480102654,0x0480102654286102,0x0654284102482102,
0x01024880c24860c2,0x00c24820c2654280,0x00826542820c2482,0x0287082488082488,0x048408248408264c,0x048004264c284082,0x064c280042480042,0x0101488101488101,
0x048809220264e288,0x048148165840a202,0x0618618618615281,0x061c58a01b618618,0x0059618618618618,0x0655280052001480,0x03ca008480212008,0x0282252089482259,
0x010948425210964f,0x00400520400593ca,0x01c00593ca040052,0x04ca1c00521c0052,0x0052240052240059,0x00521800594ca240,0x00594ca180052180,0x0040052040052080,
0x02521494852594ca,0x048521218864f284,0x02074891d93ca108,0x019200764f2871d2,0x048015944a206489,0x0042650289112244,0x005954a002480092,0x06552870521c1487,
0x054a181486052181,0x02830520c1483059,0x0655288488488655,0x0483655289489489,0x0618618615283483,0x001b618618618618,0x058a000000000000};uint64_t elfs[5]={
0x386ed9ab466c98b0,0x3a5cb55aa4a8f6b9,0x4990f848a4101ebb,0x739be50e887d24cc,0x72cbb23c6d387d62};
uint8_t* merry[5] = {"\x1b[0m\x1b[38;2;0;0;0m ","\x1b[0m\x1b[38;2;",
"\x1b[0m\x1b[", "\x1b[" ,"\x1b[38;2;0;0;0m "};
for (int i=0; i<0x1de4; i++) {
char xmas = idx[i/10] & 0x3f;
if (xmas>=24 && xmas<=28) printf("%s",merry[xmas-24]);
else putc((elfs[xmas/9]>>(7*(xmas%9))) & 0x7f,stdout);
idx[i/10]>>=6;
}
}
@GabrielFreeze
Copy link
Author

Output:

Untitled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment