Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define rs43Wiw66w7VQz BASE
- #define O4sPg0McmGbSjxg BEST_SCORE
- #define L1keqpgCIjVFTwf6vS3 BOLD
- #define g9W_pgSoQ34YO2VheF COLOR
- #define U1FM8rEzsWycV COLOR_CODE
- #define O06BaD7tk8yKyT CONSOLE_CURSOR_INFO
- #define QLjzcRagPY5d COORD
- #define B1NbqGF44fHQyTvAr4F DIRECTION
- #define OoYs9bpxB7L DOWN
- #define V0dhprD1jvFHb6JkTk ECHO
- #define TreVfQAP FG_BLACK
- #define zQW1V3kedczJ FG_BLUE
- #define XqlG7FrAFe FG_CYAN
- #define aNoJjNqC711d47gvP4Y FG_DARK_GRAY
- #define r8o92ZFHKH FG_DEFAULT
- #define _mXHAZrg2J FG_GREEN
- #define wlphoDZSyrSoSPsNF9Rx FG_LIGHT_BLUE
- #define tol8VxUV7USyTGUMn FG_LIGHT_CYAN
- #define WUUhjjG6W8Z FG_LIGHT_GRAY
- #define K2oT3xafU4 FG_LIGHT_GREEN
- #define cgQbvKcpjAA3e6X8 FG_LIGHT_MAGENTA
- #define t9CdQgYRMX0TbhQq FG_LIGHT_RED
- #define feazyF7XzuMmkLqm4y FG_LIGHT_YELLOW
- #define GVY3NSIXhs FG_MAGENTA
- #define uW_xHZSiCUYXihdW FG_RED
- #define DyZc2eqb6 FG_WHITE
- #define _gLezVs9IZXEdAj5D2 FG_YELLOW
- #define HygNE6BiULqff9fyvYXT GetConsoleCursorInfo
- #define OMlmFa4gkzSf GetStdHandle
- #define pv5mcapCuLw HANDLE
- #define mLCk2fwjH ICANON
- #define d39bITznmHiqMWHJXOVZ IS_UP_DOWN
- #define MuHtxvXrF5hVy3u IS_UP_LEFT
- #define hny1GCLEX79Qp6Rv1Q LEFT
- #define fgZxnGwLoSiekwWKMC Log2
- #define eqg3lAvHfSUSeUb8mc69 NEW
- #define VgG8R7JqKWWQa NONE
- #define eojrDU6bz0lW1QanpbqG NULL
- #define ejfoseWEltvUCXWE NUMTYPE
- #define OKJm49csE1tfNVnt OLD
- #define fezcfDQbY51kGnv PADDING
- #define IrN0fWSzx7FhM_ RESET
- #define LRdGrF027Rgv4FLz RIGHT
- #define oEIeGHpU9W_j STDIN_FILENO
- #define sDn7fW5Qd1BWA4xQ4ZC STD_OUTPUT_HANDLE
- #define w__IugK0MNtXB SetConsoleCursorInfo
- #define byLDpena7owzB SetConsoleCursorPosition
- #define okSoENtbScS TCSANOW
- #define WXh6iPduSlKt7R UP
- #define rmEqrK1vScN2lXr WIN_NUMBER
- #define a9PZh5kbfqb _WIN32
- #define jVsuvsKrVcSkY9GXgwIi _colorCode
- #define YWsSS7nDo6vo _direction
- #define f2L52OD6A4a0 ans
- #define aikjrhTiEc223Z5F9lJ bVisible
- #define OpC2Ib4u3JBLgaC8 before
- #define gnW_8f8VMpb99K bool
- #define T6zKSABdWoEn break
- #define tq1mkV09DZcfLQj7ZPcf c
- #define AmpyyOWFDl c_lflag
- #define xJ15hCY0RPUD1eP_Si cci
- #define JNZaXn8QDQ char
- #define lYbMUpXYHV checkGameOver
- #define dIhjqInb checkWin
- #define eOtEbn1ptFcHEmSupkX clearScreen
- #define KXjSw2hIlsa cmpTable
- #define n16h4MZaI2rwtK confirmQuit
- #define UfaDa_Evp confirmRestart
- #define JPKJINSYyT3 confirmWinQuit
- #define S65Sew3P5wKMLSrlYZqJ consoleHandle
- #define cOpdANEB7MJ7azU5ce const
- #define JHrxcKJCVEiNQxv continue
- #define D3hyr2Dovjofb6ibG cur
- #define c4PIcvwM d
- #define jZdJb_fxj9KSz9kluZ2 define
- #define yZBtQjnAAp5i direction
- #define gN_iOkT0_reQX17JA directionMap
- #define tEhQ0yWPeQqfs else
- #define TRWF9EcGqlbcE8oTEF_ enable
- #define LPhLTRk8 enabled
- #define AnGTCGHXprT7d_yiC end
- #define yX7d9j4a6 endif
- #define F6JR4HAQeQ enum
- #define RiHkzrEqQwVZXS5eM false
- #define KMeQvTTSRNz09o for
- #define uXUtvTtnrfR free
- #define WNoEDFxFgdsxE8 getCh
- #define df7Yygqh0mDpQzG getConfirm
- #define DhGU3ix5GEOaLJhw getPos
- #define gdckMcTLiT5 getch
- #define _PvFQdylU getchar
- #define L2rrc2FM i
- #define L81eg9rFu if
- #define yNWd8e3Su90RCiMwJ ifdef
- #define KFtBwUqmj3hN3s4Y ifndef
- #define pj1P_o09ZvJfas ij
- #define aERhs2O3jW64IWCWLCSV index
- #define aCD6sMNh9 init
- #define kJodZr8XgOLeC7g inline
- #define IkUKYQwXIEw9 input
- #define GhtyEk9eyFc int
- #define Eessm4jTlfK ip
- #define XWBaxd86q8 isRestart
- #define p0qcU2b8RBxVSbK isWin
- #define WqwMGF6_ro77XLmW1 j
- #define vTmaEJzVfLt5EArt7Fbr len
- #define mEXPl739k2kjO9WUyxa_ main
- #define mvHFQnbVSDkL malloc
- #define WoepMPrIF memcpy
- #define CGj3Non9 memset
- #define Nvk7VMaW7 moveTable
- #define oz2JsdjX moves
- #define VYPr_2ZZ n
- #define WRnC5rF8QiM36NIowXE p
- #define KLtKN0D7ZhBwndbQ pos
- #define JyHHOv5wEGSqXVJ printColoredNumber
- #define kWdeRfRBre3 printTable
- #define F3z3gnj9Wd33OjhDZ_W printTitle
- #define Lbw4pe5Qwni9J printf
- #define y9pSZQiVJnl rand
- #define zgNsSj5nUVnH3yvif randGenerate
- #define vf0NiV81gS6NT7cCaG return
- #define YIiTfGM9giA s
- #define qb1S2TAvoh_MuQZ scanf
- #define EVJY4K6snhztHmr score
- #define nDYek6Pr276X setBufferedInput
- #define rMXLROEz setConsoleCursorPosition
- #define jAjPVp4Bd3qe2 show
- #define P42e9THp3UMZ_Vd59 showConsoleCursor
- #define tbJ7tYiZ4pKyKVN1YZ size
- #define NKBIkneyj sizeof
- #define YdETNL9W_1Nyl5zWQ srand
- #define yxIdk9T6LENmLlg6 start
- #define djPjOENs92 startGame
- #define rCT4UCvaF static
- #define JXhzW_qZXQmdp step
- #define cwq1to0Mu struct
- #define lNrfV9iKKPp3Zo1B8g system
- #define l9J7wnbXfce_AId6DY00 t
- #define ISSH9_2GmnrxPRjFvdU table
- #define cZZP7Td6VA_a0jOB0 tcgetattr
- #define XV_ukMzuA tcsetattr
- #define Rif1P3OZd termios
- #define IEHzsGvPD1qTAU testTable
- #define U0tgBNLjWCRkN7V3 time
- #define y2CR6KoVxm true
- #define hSCGWiEPoaBwaQ0bX typedef
- #define LP_3Ui8lCx58UJWxXuDZ val
- #define t7o1K4l3HOCIv void
- #define ruXDY8QCchPDK while
- #define SHBQfP71cfyXZw1 x
- #define wOZA_oEGB y
- /**
- * @file 2048.c
- * @author SpaceSkyNet ([email protected]), Modified & i18n by SystemFileB
- * @brief 2048 Game for Console, available on Windows 10 and Linux.
- * @version 0.1
- * @date 2022-03-15
- *
- * @copyright Copyright (c) 2022 SpaceSkyNet
- * @license MIT
- */
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <time.h>
- #ifdef _WIN32
- #include <windows.h>
- #include <conio.h>
- #else
- #include <termios.h>
- #include <unistd.h>
- #endif
- #define IS_UP_DOWN(d) (!((d)>>1))
- #define IS_UP_LEFT(d) (!((d)&1))
- #define WIN_NUMBER 2048
- #define true 1
- #define false 0
- #define RESET "\033[0m"
- #define BOLD "\033[1m"
- #define BASE "\033["
- #define PADDING " "
- //typedef _Bool bool; //C99
- hSCGWiEPoaBwaQ0bX GhtyEk9eyFc ejfoseWEltvUCXWE;
- hSCGWiEPoaBwaQ0bX F6JR4HAQeQ YWsSS7nDo6vo{WXh6iPduSlKt7R,OoYs9bpxB7L,hny1GCLEX79Qp6Rv1Q,LRdGrF027Rgv4FLz,VgG8R7JqKWWQa}B1NbqGF44fHQyTvAr4F;
- hSCGWiEPoaBwaQ0bX F6JR4HAQeQ jVsuvsKrVcSkY9GXgwIi{
- TreVfQAP = 30,
- zQW1V3kedczJ = 34,
- XqlG7FrAFe = 36,
- aNoJjNqC711d47gvP4Y = 90,
- r8o92ZFHKH = 39,
- _mXHAZrg2J = 32,
- wlphoDZSyrSoSPsNF9Rx = 94,
- tol8VxUV7USyTGUMn = 96,
- WUUhjjG6W8Z = 37,
- K2oT3xafU4 = 92,
- cgQbvKcpjAA3e6X8 = 95,
- t9CdQgYRMX0TbhQq = 91,
- feazyF7XzuMmkLqm4y = 93,
- GVY3NSIXhs = 35,
- uW_xHZSiCUYXihdW = 31,
- DyZc2eqb6 = 97,
- _gLezVs9IZXEdAj5D2 = 33,
- }U1FM8rEzsWycV;
- cOpdANEB7MJ7azU5ce U1FM8rEzsWycV g9W_pgSoQ34YO2VheF[11] = {uW_xHZSiCUYXihdW, _mXHAZrg2J, _gLezVs9IZXEdAj5D2, zQW1V3kedczJ, GVY3NSIXhs, XqlG7FrAFe,
- WUUhjjG6W8Z, aNoJjNqC711d47gvP4Y, t9CdQgYRMX0TbhQq, K2oT3xafU4, feazyF7XzuMmkLqm4y};
- GhtyEk9eyFc O4sPg0McmGbSjxg = 0;
- t7o1K4l3HOCIv eOtEbn1ptFcHEmSupkX();
- t7o1K4l3HOCIv rMXLROEz();
- t7o1K4l3HOCIv P42e9THp3UMZ_Vd59(gnW_8f8VMpb99K);
- t7o1K4l3HOCIv F3z3gnj9Wd33OjhDZ_W();
- t7o1K4l3HOCIv kWdeRfRBre3(ejfoseWEltvUCXWE*, GhtyEk9eyFc, GhtyEk9eyFc, GhtyEk9eyFc);
- t7o1K4l3HOCIv zgNsSj5nUVnH3yvif(ejfoseWEltvUCXWE*, GhtyEk9eyFc);
- t7o1K4l3HOCIv JyHHOv5wEGSqXVJ(ejfoseWEltvUCXWE);
- GhtyEk9eyFc fgZxnGwLoSiekwWKMC(ejfoseWEltvUCXWE);
- GhtyEk9eyFc Nvk7VMaW7(B1NbqGF44fHQyTvAr4F, ejfoseWEltvUCXWE*, GhtyEk9eyFc);
- GhtyEk9eyFc DhGU3ix5GEOaLJhw(B1NbqGF44fHQyTvAr4F, GhtyEk9eyFc, GhtyEk9eyFc, GhtyEk9eyFc);
- gnW_8f8VMpb99K djPjOENs92(ejfoseWEltvUCXWE*, GhtyEk9eyFc);
- gnW_8f8VMpb99K KXjSw2hIlsa(ejfoseWEltvUCXWE*, ejfoseWEltvUCXWE*, GhtyEk9eyFc);
- gnW_8f8VMpb99K df7Yygqh0mDpQzG(ejfoseWEltvUCXWE*, GhtyEk9eyFc, GhtyEk9eyFc, GhtyEk9eyFc);
- gnW_8f8VMpb99K n16h4MZaI2rwtK(ejfoseWEltvUCXWE*, GhtyEk9eyFc, GhtyEk9eyFc, GhtyEk9eyFc);
- gnW_8f8VMpb99K UfaDa_Evp(ejfoseWEltvUCXWE*, GhtyEk9eyFc, GhtyEk9eyFc, GhtyEk9eyFc);
- gnW_8f8VMpb99K JPKJINSYyT3(ejfoseWEltvUCXWE*, GhtyEk9eyFc, GhtyEk9eyFc, GhtyEk9eyFc);
- gnW_8f8VMpb99K dIhjqInb(ejfoseWEltvUCXWE*, GhtyEk9eyFc);
- gnW_8f8VMpb99K lYbMUpXYHV(ejfoseWEltvUCXWE*, GhtyEk9eyFc);
- JNZaXn8QDQ WNoEDFxFgdsxE8();
- B1NbqGF44fHQyTvAr4F gN_iOkT0_reQX17JA(JNZaXn8QDQ);
- GhtyEk9eyFc mEXPl739k2kjO9WUyxa_()
- {
- YdETNL9W_1Nyl5zWQ(U0tgBNLjWCRkN7V3(eojrDU6bz0lW1QanpbqG));
- GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ = 4;
- F3z3gnj9Wd33OjhDZ_W();
- qb1S2TAvoh_MuQZ("%d", &tbJ7tYiZ4pKyKVN1YZ);
- L81eg9rFu(tbJ7tYiZ4pKyKVN1YZ <= 1) tbJ7tYiZ4pKyKVN1YZ = 4;
- GhtyEk9eyFc VYPr_2ZZ = tbJ7tYiZ4pKyKVN1YZ * tbJ7tYiZ4pKyKVN1YZ;
- ejfoseWEltvUCXWE *ISSH9_2GmnrxPRjFvdU = (ejfoseWEltvUCXWE*)mvHFQnbVSDkL(VYPr_2ZZ * NKBIkneyj(ejfoseWEltvUCXWE));
- ruXDY8QCchPDK(y2CR6KoVxm)
- {
- CGj3Non9(ISSH9_2GmnrxPRjFvdU, 0, VYPr_2ZZ * NKBIkneyj(ejfoseWEltvUCXWE) / NKBIkneyj(JNZaXn8QDQ));
- L81eg9rFu(!djPjOENs92(ISSH9_2GmnrxPRjFvdU, tbJ7tYiZ4pKyKVN1YZ)) T6zKSABdWoEn;
- }
- Lbw4pe5Qwni9J("\nThanks for playing!\n");
- uXUtvTtnrfR(ISSH9_2GmnrxPRjFvdU);
- #ifdef _WIN32
- lNrfV9iKKPp3Zo1B8g("pause");
- #else
- _PvFQdylU();
- #endif
- vf0NiV81gS6NT7cCaG 0;
- }
- t7o1K4l3HOCIv aCD6sMNh9(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ)
- {
- zgNsSj5nUVnH3yvif(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ);
- zgNsSj5nUVnH3yvif(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ);
- }
- gnW_8f8VMpb99K djPjOENs92(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ)
- {
- GhtyEk9eyFc VYPr_2ZZ = tbJ7tYiZ4pKyKVN1YZ * tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr = 0, oz2JsdjX = 0;
- ejfoseWEltvUCXWE *OpC2Ib4u3JBLgaC8 = (ejfoseWEltvUCXWE*)mvHFQnbVSDkL(VYPr_2ZZ * NKBIkneyj(ejfoseWEltvUCXWE));
- gnW_8f8VMpb99K p0qcU2b8RBxVSbK = RiHkzrEqQwVZXS5eM, XWBaxd86q8 = RiHkzrEqQwVZXS5eM;
- aCD6sMNh9(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ);
- eOtEbn1ptFcHEmSupkX();
- kWdeRfRBre3(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX);
- ruXDY8QCchPDK(y2CR6KoVxm)
- {
- JNZaXn8QDQ IkUKYQwXIEw9 = WNoEDFxFgdsxE8();
- L81eg9rFu(IkUKYQwXIEw9 == 'q' && n16h4MZaI2rwtK(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX)) T6zKSABdWoEn;
- L81eg9rFu(IkUKYQwXIEw9 == 'r' && UfaDa_Evp(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX)){XWBaxd86q8 = y2CR6KoVxm;T6zKSABdWoEn;}
- B1NbqGF44fHQyTvAr4F yZBtQjnAAp5i = gN_iOkT0_reQX17JA(IkUKYQwXIEw9);
- L81eg9rFu(yZBtQjnAAp5i == VgG8R7JqKWWQa) JHrxcKJCVEiNQxv;
- WoepMPrIF(OpC2Ib4u3JBLgaC8, l9J7wnbXfce_AId6DY00, VYPr_2ZZ * NKBIkneyj(ejfoseWEltvUCXWE) / NKBIkneyj(JNZaXn8QDQ));
- EVJY4K6snhztHmr += Nvk7VMaW7(yZBtQjnAAp5i, l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ);
- L81eg9rFu(EVJY4K6snhztHmr > O4sPg0McmGbSjxg) O4sPg0McmGbSjxg = EVJY4K6snhztHmr;
- L81eg9rFu(!KXjSw2hIlsa(OpC2Ib4u3JBLgaC8, l9J7wnbXfce_AId6DY00, VYPr_2ZZ)) zgNsSj5nUVnH3yvif(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ), oz2JsdjX++;
- kWdeRfRBre3(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX);
- L81eg9rFu(!p0qcU2b8RBxVSbK && dIhjqInb(l9J7wnbXfce_AId6DY00, VYPr_2ZZ))
- {
- Lbw4pe5Qwni9J("\nYou are win!! Congratulations!\n");
- p0qcU2b8RBxVSbK = y2CR6KoVxm;
- L81eg9rFu(JPKJINSYyT3(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX))
- {
- L81eg9rFu(UfaDa_Evp(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX)) XWBaxd86q8 = y2CR6KoVxm;
- T6zKSABdWoEn;
- }
- }
- L81eg9rFu(lYbMUpXYHV(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ))
- {
- Lbw4pe5Qwni9J("\nGame Over! Have another try?\n");
- XWBaxd86q8 = UfaDa_Evp(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX);
- T6zKSABdWoEn;
- }
- }
- uXUtvTtnrfR(OpC2Ib4u3JBLgaC8);
- vf0NiV81gS6NT7cCaG XWBaxd86q8;
- }
- t7o1K4l3HOCIv zgNsSj5nUVnH3yvif(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ)
- {
- GhtyEk9eyFc VYPr_2ZZ = tbJ7tYiZ4pKyKVN1YZ * tbJ7tYiZ4pKyKVN1YZ;
- GhtyEk9eyFc KLtKN0D7ZhBwndbQ = y9pSZQiVJnl() % VYPr_2ZZ;
- ruXDY8QCchPDK(l9J7wnbXfce_AId6DY00[KLtKN0D7ZhBwndbQ]) KLtKN0D7ZhBwndbQ = y9pSZQiVJnl() % VYPr_2ZZ;
- ejfoseWEltvUCXWE LP_3Ui8lCx58UJWxXuDZ = 1 << (((y9pSZQiVJnl() % 10) / 9) + 1); // 2: 9/10, 4: 1/10
- l9J7wnbXfce_AId6DY00[KLtKN0D7ZhBwndbQ] = LP_3Ui8lCx58UJWxXuDZ;
- }
- gnW_8f8VMpb99K df7Yygqh0mDpQzG(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ, GhtyEk9eyFc EVJY4K6snhztHmr, GhtyEk9eyFc oz2JsdjX)
- {
- ruXDY8QCchPDK(y2CR6KoVxm)
- {
- JNZaXn8QDQ tq1mkV09DZcfLQj7ZPcf = WNoEDFxFgdsxE8();
- L81eg9rFu(tq1mkV09DZcfLQj7ZPcf == 'Y' || tq1mkV09DZcfLQj7ZPcf == 'y') vf0NiV81gS6NT7cCaG y2CR6KoVxm;
- tEhQ0yWPeQqfs L81eg9rFu(tq1mkV09DZcfLQj7ZPcf == 'N' || tq1mkV09DZcfLQj7ZPcf == 'n')
- {
- P42e9THp3UMZ_Vd59(RiHkzrEqQwVZXS5eM);
- eOtEbn1ptFcHEmSupkX();
- kWdeRfRBre3(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX);
- vf0NiV81gS6NT7cCaG RiHkzrEqQwVZXS5eM;
- }
- }
- }
- gnW_8f8VMpb99K n16h4MZaI2rwtK(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ, GhtyEk9eyFc EVJY4K6snhztHmr, GhtyEk9eyFc oz2JsdjX)
- {
- P42e9THp3UMZ_Vd59(y2CR6KoVxm);
- Lbw4pe5Qwni9J("\nAre you sure to quit? [Y/n] ");
- vf0NiV81gS6NT7cCaG df7Yygqh0mDpQzG(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX);
- }
- gnW_8f8VMpb99K UfaDa_Evp(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ, GhtyEk9eyFc EVJY4K6snhztHmr, GhtyEk9eyFc oz2JsdjX)
- {
- P42e9THp3UMZ_Vd59(y2CR6KoVxm);
- Lbw4pe5Qwni9J("\nDo you want to restart? [Y/n] ");
- vf0NiV81gS6NT7cCaG df7Yygqh0mDpQzG(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX);
- }
- gnW_8f8VMpb99K JPKJINSYyT3(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ, GhtyEk9eyFc EVJY4K6snhztHmr, GhtyEk9eyFc oz2JsdjX)
- {
- P42e9THp3UMZ_Vd59(y2CR6KoVxm);
- Lbw4pe5Qwni9J("Continue playing current game? [Y/n] ");
- vf0NiV81gS6NT7cCaG df7Yygqh0mDpQzG(l9J7wnbXfce_AId6DY00, tbJ7tYiZ4pKyKVN1YZ, EVJY4K6snhztHmr, oz2JsdjX);
- }
- gnW_8f8VMpb99K dIhjqInb(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc vTmaEJzVfLt5EArt7Fbr)
- {
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < vTmaEJzVfLt5EArt7Fbr; L2rrc2FM++)
- {
- L81eg9rFu(l9J7wnbXfce_AId6DY00[L2rrc2FM] == rmEqrK1vScN2lXr) vf0NiV81gS6NT7cCaG y2CR6KoVxm;
- }
- vf0NiV81gS6NT7cCaG RiHkzrEqQwVZXS5eM;
- }
- gnW_8f8VMpb99K lYbMUpXYHV(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ)
- {
- GhtyEk9eyFc VYPr_2ZZ = tbJ7tYiZ4pKyKVN1YZ * tbJ7tYiZ4pKyKVN1YZ;
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < VYPr_2ZZ; L2rrc2FM++)
- {
- L81eg9rFu(!l9J7wnbXfce_AId6DY00[L2rrc2FM]) vf0NiV81gS6NT7cCaG RiHkzrEqQwVZXS5eM;
- }
- ejfoseWEltvUCXWE *IEHzsGvPD1qTAU = (ejfoseWEltvUCXWE*)mvHFQnbVSDkL(VYPr_2ZZ * NKBIkneyj(ejfoseWEltvUCXWE) / NKBIkneyj(JNZaXn8QDQ));
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < 4; L2rrc2FM++)
- {
- WoepMPrIF(IEHzsGvPD1qTAU, l9J7wnbXfce_AId6DY00, VYPr_2ZZ * NKBIkneyj(ejfoseWEltvUCXWE) / NKBIkneyj(JNZaXn8QDQ));
- L81eg9rFu(Nvk7VMaW7((B1NbqGF44fHQyTvAr4F)L2rrc2FM, IEHzsGvPD1qTAU, tbJ7tYiZ4pKyKVN1YZ))
- {
- uXUtvTtnrfR(IEHzsGvPD1qTAU);
- vf0NiV81gS6NT7cCaG RiHkzrEqQwVZXS5eM;
- }
- }
- uXUtvTtnrfR(IEHzsGvPD1qTAU);
- vf0NiV81gS6NT7cCaG y2CR6KoVxm;
- }
- gnW_8f8VMpb99K KXjSw2hIlsa(ejfoseWEltvUCXWE *YIiTfGM9giA, ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc vTmaEJzVfLt5EArt7Fbr)
- {
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < vTmaEJzVfLt5EArt7Fbr; L2rrc2FM++)
- {
- L81eg9rFu(YIiTfGM9giA[L2rrc2FM] != l9J7wnbXfce_AId6DY00[L2rrc2FM]) vf0NiV81gS6NT7cCaG RiHkzrEqQwVZXS5eM;
- }
- vf0NiV81gS6NT7cCaG y2CR6KoVxm;
- }
- GhtyEk9eyFc fgZxnGwLoSiekwWKMC(ejfoseWEltvUCXWE SHBQfP71cfyXZw1)
- {
- GhtyEk9eyFc f2L52OD6A4a0 = 0;
- ruXDY8QCchPDK(SHBQfP71cfyXZw1 >>= 1) ++f2L52OD6A4a0;
- vf0NiV81gS6NT7cCaG f2L52OD6A4a0;
- }
- t7o1K4l3HOCIv JyHHOv5wEGSqXVJ(ejfoseWEltvUCXWE SHBQfP71cfyXZw1)
- {
- L81eg9rFu(!SHBQfP71cfyXZw1) Lbw4pe5Qwni9J("│ ");
- tEhQ0yWPeQqfs
- {
- GhtyEk9eyFc wOZA_oEGB = fgZxnGwLoSiekwWKMC(SHBQfP71cfyXZw1);
- GhtyEk9eyFc aERhs2O3jW64IWCWLCSV = wOZA_oEGB < 12 ? wOZA_oEGB - 1 : wOZA_oEGB % 12 - 1;
- Lbw4pe5Qwni9J("│ %s%s%dm%4d%s ", L1keqpgCIjVFTwf6vS3, rs43Wiw66w7VQz, (GhtyEk9eyFc)g9W_pgSoQ34YO2VheF[aERhs2O3jW64IWCWLCSV], SHBQfP71cfyXZw1, IrN0fWSzx7FhM_);
- }
- }
- t7o1K4l3HOCIv kWdeRfRBre3(ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ, GhtyEk9eyFc EVJY4K6snhztHmr, GhtyEk9eyFc oz2JsdjX)
- {
- rMXLROEz();
- Lbw4pe5Qwni9J("┌───────────────────────────┐\n");
- Lbw4pe5Qwni9J("│ %sSCORE: %18d%s │\n", L1keqpgCIjVFTwf6vS3, EVJY4K6snhztHmr, IrN0fWSzx7FhM_);
- Lbw4pe5Qwni9J("│ %sBEST SCORE: %13d%s │\n", L1keqpgCIjVFTwf6vS3, O4sPg0McmGbSjxg, IrN0fWSzx7FhM_);
- Lbw4pe5Qwni9J("│ %sMOVES: %18d%s │\n", L1keqpgCIjVFTwf6vS3, oz2JsdjX, IrN0fWSzx7FhM_);
- Lbw4pe5Qwni9J("└───────────────────────────┘\n");
- Lbw4pe5Qwni9J("┌");
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < tbJ7tYiZ4pKyKVN1YZ - 1; L2rrc2FM++) Lbw4pe5Qwni9J("──────┬");
- Lbw4pe5Qwni9J("──────┐\n");
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < tbJ7tYiZ4pKyKVN1YZ; L2rrc2FM++)
- {
- KMeQvTTSRNz09o(GhtyEk9eyFc WqwMGF6_ro77XLmW1 = 0; WqwMGF6_ro77XLmW1 < tbJ7tYiZ4pKyKVN1YZ; WqwMGF6_ro77XLmW1++)
- {
- GhtyEk9eyFc KLtKN0D7ZhBwndbQ = L2rrc2FM * tbJ7tYiZ4pKyKVN1YZ + WqwMGF6_ro77XLmW1;
- JyHHOv5wEGSqXVJ(l9J7wnbXfce_AId6DY00[KLtKN0D7ZhBwndbQ]);
- }
- Lbw4pe5Qwni9J("│\n");
- L81eg9rFu(L2rrc2FM == tbJ7tYiZ4pKyKVN1YZ - 1) T6zKSABdWoEn;
- Lbw4pe5Qwni9J("├");
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < tbJ7tYiZ4pKyKVN1YZ - 1; L2rrc2FM++) Lbw4pe5Qwni9J("──────┼");
- Lbw4pe5Qwni9J("──────┤\n");
- }
- Lbw4pe5Qwni9J("└");
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < tbJ7tYiZ4pKyKVN1YZ - 1; L2rrc2FM++) Lbw4pe5Qwni9J("──────┴");
- Lbw4pe5Qwni9J("──────┘\n");
- Lbw4pe5Qwni9J("q=退出 r=重新开始 wasd=移动\n");
- }
- B1NbqGF44fHQyTvAr4F gN_iOkT0_reQX17JA(JNZaXn8QDQ tq1mkV09DZcfLQj7ZPcf)
- {
- L81eg9rFu(tq1mkV09DZcfLQj7ZPcf == 'w' || tq1mkV09DZcfLQj7ZPcf == 'W') vf0NiV81gS6NT7cCaG WXh6iPduSlKt7R;
- L81eg9rFu(tq1mkV09DZcfLQj7ZPcf == 's' || tq1mkV09DZcfLQj7ZPcf == 'S') vf0NiV81gS6NT7cCaG OoYs9bpxB7L;
- L81eg9rFu(tq1mkV09DZcfLQj7ZPcf == 'a' || tq1mkV09DZcfLQj7ZPcf == 'A') vf0NiV81gS6NT7cCaG hny1GCLEX79Qp6Rv1Q;
- L81eg9rFu(tq1mkV09DZcfLQj7ZPcf == 'd' || tq1mkV09DZcfLQj7ZPcf == 'D') vf0NiV81gS6NT7cCaG LRdGrF027Rgv4FLz;
- vf0NiV81gS6NT7cCaG VgG8R7JqKWWQa;
- }
- /**
- * UP = 00, DOWN = 01, >> 1 = 0 -> (j, i)
- * LEFT = 10, RIGHT = 11, >> 1 = 1 -> (i, j)
- */
- kJodZr8XgOLeC7g GhtyEk9eyFc DhGU3ix5GEOaLJhw(B1NbqGF44fHQyTvAr4F yZBtQjnAAp5i, GhtyEk9eyFc L2rrc2FM, GhtyEk9eyFc WqwMGF6_ro77XLmW1, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ)
- {
- L81eg9rFu(d39bITznmHiqMWHJXOVZ(yZBtQjnAAp5i)) vf0NiV81gS6NT7cCaG WqwMGF6_ro77XLmW1 * tbJ7tYiZ4pKyKVN1YZ + L2rrc2FM;
- tEhQ0yWPeQqfs vf0NiV81gS6NT7cCaG L2rrc2FM * tbJ7tYiZ4pKyKVN1YZ + WqwMGF6_ro77XLmW1;
- }
- /**
- * UP = 00, LEFT = 10, & 1 = 0 -> from 0 to size-1, step +1
- * DOWN = 01, RIGHT = 11, & 1 = 1 -> from size-1 to 0, step -1
- */
- GhtyEk9eyFc Nvk7VMaW7(B1NbqGF44fHQyTvAr4F yZBtQjnAAp5i, ejfoseWEltvUCXWE *l9J7wnbXfce_AId6DY00, GhtyEk9eyFc tbJ7tYiZ4pKyKVN1YZ)
- {
- GhtyEk9eyFc yxIdk9T6LENmLlg6, AnGTCGHXprT7d_yiC, JXhzW_qZXQmdp, EVJY4K6snhztHmr = 0;
- L81eg9rFu(MuHtxvXrF5hVy3u(yZBtQjnAAp5i)) yxIdk9T6LENmLlg6 = 0, AnGTCGHXprT7d_yiC = tbJ7tYiZ4pKyKVN1YZ - 1, JXhzW_qZXQmdp = 1;
- tEhQ0yWPeQqfs yxIdk9T6LENmLlg6 = tbJ7tYiZ4pKyKVN1YZ - 1, AnGTCGHXprT7d_yiC = 0, JXhzW_qZXQmdp = -1;
- KMeQvTTSRNz09o(GhtyEk9eyFc L2rrc2FM = 0; L2rrc2FM < tbJ7tYiZ4pKyKVN1YZ; L2rrc2FM++)
- {
- GhtyEk9eyFc WRnC5rF8QiM36NIowXE = yxIdk9T6LENmLlg6;
- KMeQvTTSRNz09o(GhtyEk9eyFc WqwMGF6_ro77XLmW1 = WRnC5rF8QiM36NIowXE + JXhzW_qZXQmdp; JXhzW_qZXQmdp > 0 ? WqwMGF6_ro77XLmW1 <= AnGTCGHXprT7d_yiC : WqwMGF6_ro77XLmW1 >= AnGTCGHXprT7d_yiC; WqwMGF6_ro77XLmW1 += JXhzW_qZXQmdp)
- {
- GhtyEk9eyFc pj1P_o09ZvJfas = DhGU3ix5GEOaLJhw(yZBtQjnAAp5i, L2rrc2FM, WqwMGF6_ro77XLmW1, tbJ7tYiZ4pKyKVN1YZ), Eessm4jTlfK = DhGU3ix5GEOaLJhw(yZBtQjnAAp5i, L2rrc2FM, WRnC5rF8QiM36NIowXE, tbJ7tYiZ4pKyKVN1YZ);
- L81eg9rFu(!l9J7wnbXfce_AId6DY00[pj1P_o09ZvJfas]) JHrxcKJCVEiNQxv;
- L81eg9rFu(l9J7wnbXfce_AId6DY00[Eessm4jTlfK] && l9J7wnbXfce_AId6DY00[Eessm4jTlfK] ^ l9J7wnbXfce_AId6DY00[pj1P_o09ZvJfas])
- {
- WRnC5rF8QiM36NIowXE += JXhzW_qZXQmdp; l9J7wnbXfce_AId6DY00[DhGU3ix5GEOaLJhw(yZBtQjnAAp5i, L2rrc2FM, WRnC5rF8QiM36NIowXE, tbJ7tYiZ4pKyKVN1YZ)] = l9J7wnbXfce_AId6DY00[pj1P_o09ZvJfas];
- L81eg9rFu(WRnC5rF8QiM36NIowXE ^ WqwMGF6_ro77XLmW1) l9J7wnbXfce_AId6DY00[pj1P_o09ZvJfas] = 0;
- }
- tEhQ0yWPeQqfs
- {
- L81eg9rFu(!l9J7wnbXfce_AId6DY00[Eessm4jTlfK]) l9J7wnbXfce_AId6DY00[Eessm4jTlfK] = l9J7wnbXfce_AId6DY00[pj1P_o09ZvJfas];
- tEhQ0yWPeQqfs l9J7wnbXfce_AId6DY00[Eessm4jTlfK] <<= 1, EVJY4K6snhztHmr += l9J7wnbXfce_AId6DY00[Eessm4jTlfK], WRnC5rF8QiM36NIowXE += JXhzW_qZXQmdp;
- l9J7wnbXfce_AId6DY00[pj1P_o09ZvJfas] = 0;
- }
- }
- }
- vf0NiV81gS6NT7cCaG EVJY4K6snhztHmr;
- }
- #ifndef _WIN32
- t7o1K4l3HOCIv nDYek6Pr276X(gnW_8f8VMpb99K TRWF9EcGqlbcE8oTEF_)
- {
- rCT4UCvaF gnW_8f8VMpb99K LPhLTRk8 = y2CR6KoVxm;
- rCT4UCvaF cwq1to0Mu Rif1P3OZd OKJm49csE1tfNVnt;
- cwq1to0Mu Rif1P3OZd eqg3lAvHfSUSeUb8mc69;
- L81eg9rFu (TRWF9EcGqlbcE8oTEF_ && !LPhLTRk8)
- {
- // restore the former settings
- XV_ukMzuA(oEIeGHpU9W_j, okSoENtbScS, &OKJm49csE1tfNVnt);
- // set the new state
- LPhLTRk8 = y2CR6KoVxm;
- }
- tEhQ0yWPeQqfs L81eg9rFu (!TRWF9EcGqlbcE8oTEF_ && LPhLTRk8)
- {
- // get the terminal settings for standard input
- cZZP7Td6VA_a0jOB0(oEIeGHpU9W_j, &eqg3lAvHfSUSeUb8mc69);
- // we want to keep the old setting to restore them at the end
- OKJm49csE1tfNVnt = eqg3lAvHfSUSeUb8mc69;
- // disable canonical mode (buffered i/o) and local echo
- eqg3lAvHfSUSeUb8mc69.AmpyyOWFDl &= (~mLCk2fwjH & ~V0dhprD1jvFHb6JkTk);
- // set the new settings immediately
- XV_ukMzuA(oEIeGHpU9W_j, okSoENtbScS, &eqg3lAvHfSUSeUb8mc69);
- // set the new state
- LPhLTRk8 = RiHkzrEqQwVZXS5eM;
- }
- }
- #endif
- JNZaXn8QDQ WNoEDFxFgdsxE8()
- {
- #ifdef _WIN32
- vf0NiV81gS6NT7cCaG gdckMcTLiT5();
- #else
- nDYek6Pr276X(RiHkzrEqQwVZXS5eM);
- JNZaXn8QDQ tq1mkV09DZcfLQj7ZPcf = _PvFQdylU();
- nDYek6Pr276X(y2CR6KoVxm);
- vf0NiV81gS6NT7cCaG tq1mkV09DZcfLQj7ZPcf;
- #endif
- }
- t7o1K4l3HOCIv P42e9THp3UMZ_Vd59(gnW_8f8VMpb99K jAjPVp4Bd3qe2)
- {
- #ifdef _WIN32
- pv5mcapCuLw S65Sew3P5wKMLSrlYZqJ = OMlmFa4gkzSf(sDn7fW5Qd1BWA4xQ4ZC);
- O06BaD7tk8yKyT xJ15hCY0RPUD1eP_Si;
- HygNE6BiULqff9fyvYXT(S65Sew3P5wKMLSrlYZqJ, &xJ15hCY0RPUD1eP_Si);
- xJ15hCY0RPUD1eP_Si.aikjrhTiEc223Z5F9lJ = jAjPVp4Bd3qe2; // show/hide cursor
- w__IugK0MNtXB(S65Sew3P5wKMLSrlYZqJ, &xJ15hCY0RPUD1eP_Si);
- #else
- Lbw4pe5Qwni9J(jAjPVp4Bd3qe2 ? "\033[?25h" : "\033[?25l"); // show/hide cursor
- #endif
- }
- t7o1K4l3HOCIv eOtEbn1ptFcHEmSupkX()
- {
- #ifdef _WIN32
- lNrfV9iKKPp3Zo1B8g("cls");
- #else
- lNrfV9iKKPp3Zo1B8g("clear");
- #endif
- }
- t7o1K4l3HOCIv rMXLROEz()
- {
- #ifdef _WIN32
- pv5mcapCuLw S65Sew3P5wKMLSrlYZqJ = OMlmFa4gkzSf(sDn7fW5Qd1BWA4xQ4ZC);
- QLjzcRagPY5d D3hyr2Dovjofb6ibG = {0, 0};
- P42e9THp3UMZ_Vd59(RiHkzrEqQwVZXS5eM);
- byLDpena7owzB(S65Sew3P5wKMLSrlYZqJ, D3hyr2Dovjofb6ibG);
- #else
- Lbw4pe5Qwni9J("\033[0m\033[2J\033c");
- #endif
- }
- t7o1K4l3HOCIv F3z3gnj9Wd33OjhDZ_W()
- {
- #ifdef _WIN32
- lNrfV9iKKPp3Zo1B8g("chcp 65001"); // UTF-8
- #endif
- eOtEbn1ptFcHEmSupkX();
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"-----------------------------------\n%s%dm", rs43Wiw66w7VQz, (GhtyEk9eyFc)K2oT3xafU4);
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv" █████ █████ ███ █████ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"██ ██ ██ ██ ████ ██ ██ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"█ █ █ ██ █ ██ ██ ██ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"█ █ █ █ ██ ██ ██ ██ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"██ ██ █ █ █ ██ █████ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"███ ██ █ █ ██ ██ ███████ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv" ██ █ █ ██ ██ █ ██ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv" ██ █ █ ████████ ██ █ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"███ █ ██ ██ ██ █ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"███ ███ ███ ██ ██ ██ \n");
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"███████ █████ ██ █████ %s\n", IrN0fWSzx7FhM_);
- Lbw4pe5Qwni9J(fezcfDQbY51kGnv"-------- By: SpaceSkyNet ----------\n\n");
- Lbw4pe5Qwni9J("Join the numbers and get to the %s%dm2048%s tile!\n", rs43Wiw66w7VQz, (GhtyEk9eyFc)K2oT3xafU4, IrN0fWSzx7FhM_);
- Lbw4pe5Qwni9J("You can press %s%dm`q`%s to quit and press %s%dm`r`%s to restart!\n", rs43Wiw66w7VQz, (GhtyEk9eyFc)t9CdQgYRMX0TbhQq, IrN0fWSzx7FhM_, rs43Wiw66w7VQz, (GhtyEk9eyFc)t9CdQgYRMX0TbhQq, IrN0fWSzx7FhM_);
- Lbw4pe5Qwni9J("You can use %s%dm`WASD`%s to move in playing!\n", rs43Wiw66w7VQz, (GhtyEk9eyFc)t9CdQgYRMX0TbhQq, IrN0fWSzx7FhM_);
- Lbw4pe5Qwni9J("Now, please input the size of the game: \n");
- Lbw4pe5Qwni9J("游戏大小: ");
- }
Advertisement
Add Comment
Please, Sign In to add comment