贪吃蛇C语言代码.txt
include include include include include include include define N 21 char apple2; char tail2; char snake NULL; int score 0; int len 3; char max 0; void gotoxyint x, int y COORD pos; pos.X x; pos.Y y; SetConsoleCursorPositionGetStdHandleSTD_OUTPUT_HANDLE, pos; void colorint b HANDLE hConsole GetStdHandleSTD_OUTPUT_HANDLE; SetConsoleTextAttributehConsole, b; int blockchar head2 int i; if head0N head1Nreturn 1; for i 1; i0; i memcpysnakei, snakei - 1, 2; switch ch case w case Wsnake00; break; case s case Ssnake00; break; case a case Asnake01; break; case d case Dsnake01; break; default; gotoxysnake01 * 2, snake00; color14; printf; if a eat snake char reallocsnake, sizeofchar **len; snakelen - 1 char *mallocsizeofchar * 2; memcpysnakelen - 1, tail, 2; creat; int f int i, n; for i 0; ilen; iif apple0 snakei0 if ilen apple0 snakelen - 10 else n 0; return n; void creat int n, a 0; srandunsignedtimeNULL; apple0 rand N 1; apple1 rand N 1; apple2 1; while int nf apple0 rand N 1; apple1 rand N 1; apple2 1; n f; a; if a 100000 gotoxy10, 10; color12; printf““; gotoxyapple1 * 2, apple0; color12; printf; void p int aN 2N 2 0 , i, j; for i 1; i N; i for j 1; j N; j aij 1; for i 0; i N 1; i gotoxy0, i; for j 0; j N 1; j switch aij case 0color12; printf; continue; case 1color11; printf; continue; gotoxyN * 2 10, 1; color10; printf“ W S A D “; gotoxyN * 2 10, 3; color10; printf“ space “; gotoxyN * 2 10, 5; color10; printf“ esc “; gotoxyN * 2 10, 9; color14; printf“0“; gotoxyN * 2 10, 11; color14; printf“d“, max * 10; void main int i, a 0, n 1, q; char ch g, c; char b3 0 ; p; snake char reallocsnake, sizeofchar **len; for i 0; ilen; i snakei char *mallocsizeofchar * 2; snakei0 N / 2 1; snakei1 N / 2 1 i; gotoxysnakei1 * 2, snakei0; color14; printf; gotoxy0, N 2; creat; while ch 0 x1B if _kbhit gotoxy0, N 2; q _getche; if q w q W q s q S q a q A q d q D q 32 q 0 x1Bwasd b2 b1; b1 b0; b0 q; if b0 b1 if b1 32b1 b2; if n 1 snake00 snake20; snake20 c; c snake01; snake01 snake21; snake21 c; n; Sleep200 - score * 1; if b1 - b0 3 b0 - b1 3 b1 - b0 4 b0 - b1 4 b0 b1; b1 0; ch b0; movech; if blocksnake0 gotoxyN / 2, N 2; printf; if a 1 gotoxy10, 10; color12; printf““; else gotoxy10, 10; color12; printf; gotoxy0, N 2; _getche; exit0;