c语言编贪吃蛇,用什么编译环境,怎么显示贪吃蛇和水果,怎么键盘响应?我菜鸟都不算,求指教。 c语言贪吃蛇源代码怎么用?

\u8d2a\u5403\u86c7\u600e\u4e48\u7528C\u8bed\u8a00\u7f16\u5199

C\u8bed\u8a00\u8d2a\u5403\u86c7\u6e90\u4ee3\u7801\u5fc5\u987b\u7ecf\u8fc7\u76f8\u5e94\u7684C/C++\u7f16\u8bd1\u5668\u7f16\u8bd1\u6210EXE\u6587\u4ef6\u540e\u624d\u80fd\u8fd0\u884c\u3002
\u7531\u4e8e\u6211\u4eec\u901a\u5e38\u4f7f\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u662fWindows\u7cfb\u7edf\uff0c\u800c\u5728\u8be5\u7cfb\u7edf\u4e0b\u6700\u957f\u7528\u7684C/C++\u7f16\u8bd1\u5668\u662fVC++\u7f16\u8bd1\u5668\uff0c\u76ee\u524d\u5728\u5927\u4e13\u9662\u6821\u5e38\u7528\u7684\u7248\u672c\u8fd8\u662fVC++6.0
\u4e0b\u9762\u5c31\u4ee5VC++6.0\u6765\u8bf4\u660e\u7f16\u8bd1\u8fc7\u7a0b\uff1a
1.\u5728VC++6.0\u4e2d\u901a\u8fc7\u201cFile\u201d\u83dc\u5355\u4e0b\u7684 \u201cOpen\u201d\u5b50\u83dc\u5355\u6253\u5f00\u8d2a\u5403\u86c7\u4ee3\u7801


2.\u5728VC++6.0\u4e2d\u901a\u8fc7\u201cBuild\u201d\u83dc\u5355\u4e0b\u7684 \u201cCompile xxxx.xx\u201d\u5b50\u83dc\u5355\u7f16\u8bd1\u8d2a\u5403\u86c7\u4ee3\u7801


3.\u5728VC++6.0\u4e2d\u901a\u8fc7\u201cBuild\u201d\u83dc\u5355\u4e0b\u7684 \u201cExecute xxxx.exe\u201d\u5b50\u83dc\u5355\u8fd0\u884c\u8d2a\u5403\u86c7\u7a0b\u5e8f



\u9644\uff1a\u5728VC++6\u73af\u5883\u4e0b\u53ef\u8fd0\u884c\u7684C/C++\u8d2a\u5403\u86c7\u6e90\u4ee3\u7801\uff08\u65e0\u7248\u6743\uff0c\u81ea\u5df1\u7f16\u5199\uff0c\u6b22\u8fce\u4efb\u610f\u4fee\u6539\u62f7\u8d1d\uff09
/*C/C++\u8d2a\u5403\u86c7\u6e38\u620f\uff0czjlj,2015.3.16*/#define DEBUG 0 //\u5f53\u7a0b\u5e8f\u5728\u8c03\u8bd5\u9636\u6bb5\u65f6 DEBUG\u4e3a 1#include#include#include#includeusing namespace std;void readini(FILE **fphead, int *score, char *argv[]) //\u521b\u5efa\u6216\u6253\u5f00\u4e00\u4e2a\u548c\u8fd0\u884c\u6587\u4ef6\u5bf9\u5e94\u7684ini\u6587\u4ef6,\u8bfb\u53d6\u6700\u9ad8\u7eaa\u5f55{ char filename[200],*pfilename; int flag=-1,i; strcpy(filename,argv[0]); for(i=0;filename[i]!='\0';i++) { if ('.'==filename[i])flag=1; } if(1==flag) { filename[i-1]='i'; filename[i-2]='n'; filename[i-3]='i'; } else { filename[i]='.'; filename[i+1]='i'; filename[i+2]='n'; filename[i+3]='i'; filename[i+4]='\0'; } for(;filename[i]!='\\'&&i>=0;i--)pfilename=&filename[i]; if ( (*fphead=fopen(pfilename, "rb+"))==NULL) { if ( (*fphead=fopen(pfilename, "wb+"))==NULL) { printf("\u65e0\u6cd5\u521b\u5efa\u6216\u6253\u5f00\"%s\"\u6587\u4ef6\n",pfilename); system("pause"); exit(0); } } else { fread(score,sizeof(int),1,*fphead); }}void writeini(FILE **fphead, int *score, char *argv[]) //\u6253\u5f00\u4e00\u4e2a\u548c\u8fd0\u884c\u6587\u4ef6\u5bf9\u5e94\u7684ini\u6587\u4ef6,\u5199\u5165\u6700\u9ad8\u7eaa\u5f55{ char filename[200],*pfilename; int flag=-1,i; strcpy(filename,argv[0]); for(i=0;filename[i]!='\0';i++) { if ('.'==filename[i])flag=1; } if(1==flag) { filename[i-1]='i'; filename[i-2]='n'; filename[i-3]='i'; } else { filename[i]='.'; filename[i+1]='i'; filename[i+2]='n'; filename[i+3]='i'; filename[i+4]='\0'; } for(;filename[i]!='\\'&&i>=0;i--)pfilename=&filename[i]; if ( (*fphead=fopen(pfilename, "wb+"))==NULL) { printf("\u65e0\u6cd5\u5199\u5165\"%s\"\u6587\u4ef6\uff0c\u78c1\u76d8\u5199\u4fdd\u62a4!\n",pfilename); system("pause"); exit(0); } else { rewind(*fphead); fwrite(score,sizeof(int),1,*fphead); fclose(*fphead); }}void gotoxy(int x,int y)//\u5149\u6807\u5b9a\u4f4d,\u5149\u6807\u5b9a\u4f4d\u51fd\u6570SetConsoleCursorPosition\u662f\u5de6\u4e0a\u89d2\u4f4d\u7f6e\u662f0,0\u7136\u540e\u5411\u5de6\u5411\u4e0b\u5ef6\u4f38{COORD pos;pos.X=2*y;pos.Y=x;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}void color(int a)//\u989c\u8272\u51fd\u6570{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}void Refresh(int q[][22], int grade, int gamespeed, int length,int score) // \u8f93\u51fa\u8d2a\u5403\u86c7\u68cb\u76d8{ int i,j; for(i=0;i=0;i--) { start=clock(); while(clock()-start0) cout =(length+(grade-1)*8)*10)//\u5224\u65ad\u662f\u5426\u7834\u8bb0\u5f55 { gotoxy(10,7); color(12); cout =(length+(grade-1)*8)*10)//\u5224\u65ad\u662f\u5426\u7834\u8bb0\u5f55 { gotoxy(10,7); color(12); cout =8)//\u957f\u5ea6\u5927\u4e8e\u7b49\u4e8e8\u91cd\u65b0\u8ba1\u7b97\u957f\u5ea6\uff0c\u7b49\u7ea7\u52a01 { length -= 8;//\u91cd\u65b0\u8ba1\u7b97\u957f\u5ea6 grade ++;//\u7b49\u7ea7\u52a01 if(gamespeed>50)//\u63a7\u5236\u6700\u5feb\u901f\u5ea6\u4e3a50 gamespeed = 550 - grade * 50; // \u6539\u53d8\u81ea\u52a8\u524d\u8fdb\u65f6\u95f4\u95f4\u9694 } tcsQipan[x][y]= 3;//\u8d2a\u5403\u86c7\u68cb\u76d8\u76f8\u5e94\u5750\u6807\u73b0\u5728\u86c7\u5934\u6807\u5fd7\u6539\u4e3a\u86c7\u5934\u6807\u5fd73 tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]] = 4;//\u8d2a\u5403\u86c7\u68cb\u76d8\u76f8\u5e94\u5750\u6807\u539f\u6765\u86c7\u5934\u6807\u5fd7\u6539\u4e3a\u86c7\u8eab\u6807\u5fd74 head = (head+1)%400;//\u9632\u6b62\u6570\u7ec4\u8d8a\u754c tcsZuobiao[0][head] = x;//\u86c7\u5934\u7684x\u5750\u6807 tcsZuobiao[1][head] = y;//\u86c7\u5934\u7684y\u5750\u6807 do//\u968f\u673a\u51fa\u679c\u5b50 { x1=rand()%20+1; y1=rand()%20+1; } while(tcsQipan[x1][y1]!=0);//\u5982\u679c\u4e0d\u662f\u5728\u7a7a\u767d\u5904\u91cd\u65b0\u51fa\u679c\u5b50 tcsQipan[x1][y1]=5;//\u8d2a\u5403\u86c7\u68cb\u76d8\u76f8\u5e94\u5750\u6807\u6807\u4e0a\u679c\u5b50\u7684\u6807\u5fd75 gotoxy(22,12); cout << "\t\u6e38\u620f\u8fdb\u884c\u4e2d!" << endl; Refresh(tcsQipan,grade,gamespeed,length,score); } else // \u4e0d\u5403\u679c\u5b50 { if(otherkey) { tcsQipan [tcsZuobiao[0][tail]][tcsZuobiao[1][tail]]=0; tail=(tail+1)%400;//\u9632\u6b62\u6570\u7ec4\u8d8a\u754c tcsQipan [tcsZuobiao[0][head]][tcsZuobiao[1][head]]=4; head=(head+1)%400;//\u9632\u6b62\u6570\u7ec4\u8d8a\u754c tcsZuobiao[0][head]=x;//\u86c7\u5934\u7684x\u5750\u6807 tcsZuobiao[1][head]=y;//\u86c7\u5934\u7684y\u5750\u6807 tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]]=3; gotoxy(22,12); cout << "\t\u6e38\u620f\u8fdb\u884c\u4e2d!" << endl; Refresh(tcsQipan,grade,gamespeed,length,score); } else { gotoxy(22,12); cout << "\t\u6e38\u620f\u6682\u505c\u4e2d!" << endl; } } /* \u6e38\u620f\u8fd0\u884c\u65f6\u7684\u6838\u5fc3\u7b97\u6cd5\u7ed3\u675f */ } while(1) { while(!kbhit()); if((direction =getch())==13)//\u6309\u56de\u8f66\u952e\u5f00\u59cb\u4e0b\u4e00\u5c40 break; if(direction ==27)//\u6309ESC\u9000\u51fa\u6e38\u620f exit(0); } system("cls");//\u6e05\u9664\u5c4f\u5e55\u91cd\u65b0\u5f00\u59cb } return 0;}

你如果用TC
#include<graphics.h>
#include<stdlib.h>
#define N 200
#define up 0x4800
#define down 0x5000
#define left 0x4b00
#define right 0x4d00
#define esc 0x011b
#define Y 0x1579
#define n 0x316e
int gamespeed; /* 游戏速度 */
int i,key,color;
int score=0; /* 游戏分数 */
char cai48H[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x00,0x18,0x00,0x00,0x00,0x0E,0x00,
0x1C,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,
0x00,0x00,0x20,0x00,0x38,0x00,0x00,0x00,
0x40,0x00,0x78,0x00,0x00,0x01,0x80,0x40,
0x70,0x00,0x00,0x03,0x80,0xC0,0xE0,0x00,
0x00,0x07,0x80,0x80,0xC0,0x00,0x00,0x0E,
0x11,0x81,0xC0,0x00,0x00,0x08,0x61,0x01,
0x80,0x00,0x00,0x00,0x23,0x03,0x04,0x00,
0x00,0x02,0x02,0x00,0x06,0x00,0x00,0x1E,
0x04,0x00,0x0F,0x00,0x00,0x1C,0x1F,0x80,
0x1E,0x00,0x00,0x08,0x3F,0x80,0x3C,0x00,
0x00,0x00,0xFF,0x80,0x38,0x00,0x00,0x03,
0xFF,0x80,0x78,0x00,0x00,0x0F,0xF8,0x00,
0xF0,0x00,0x00,0x7F,0xF0,0x00,0xE0,0x00,
0x03,0xFF,0xFC,0x01,0x80,0x00,0x03,0xC0,
0xFF,0x01,0x03,0x80,0x01,0x01,0xFF,0x00,
0x03,0x80,0x00,0x01,0x3F,0x00,0x07,0x80,
0x00,0x02,0x11,0x00,0x07,0x00,0x00,0x00,
0x10,0x00,0x07,0x00,0x00,0x00,0x10,0x00,
0x0E,0x00,0x00,0x08,0x10,0x00,0x1C,0x00,
0x00,0x30,0x10,0x00,0x18,0x00,0x00,0x70,
0x10,0x00,0x30,0x00,0x01,0xE0,0x10,0x00,
0x70,0x00,0x03,0x80,0x10,0x00,0x60,0x00,
0x00,0x00,0x30,0x00,0xE0,0x00,0x00,0x00,
0xF0,0x01,0xC0,0x00,0x00,0x00,0x70,0x03,
0xC0,0x00,0x00,0x00,0x10,0x07,0x80,0x00,
0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,
0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3C,
0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,
0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

char she48H[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,
0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,
0x00,0x0E,0x00,0x00,0x00,0x03,0x00,0x07,
0x00,0x00,0x00,0x02,0x00,0x03,0x00,0x00,
0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x02,
0x00,0x00,0xF8,0x00,0x00,0x02,0x00,0x07,
0x86,0x00,0x00,0x02,0x00,0x18,0x03,0x00,
0x00,0x02,0x00,0x00,0x07,0x80,0x00,0x03,
0xF0,0x00,0x07,0x80,0x00,0x0F,0xFC,0x00,
0x0C,0x00,0x00,0x7E,0x3F,0x80,0x00,0x00,
0x01,0xFE,0x1F,0x80,0x00,0x00,0x01,0xE2,
0x39,0x8C,0x00,0x00,0x00,0xC2,0x30,0x08,
0x00,0x00,0x00,0xC2,0x60,0x08,0x00,0x00,
0x00,0xC3,0xE0,0x08,0x60,0x00,0x00,0x7F,
0xE0,0x01,0xE0,0x00,0x00,0x3F,0x80,0x1F,
0xE0,0x00,0x00,0x1E,0x00,0x1F,0x80,0x00,
0x00,0x1E,0x00,0x1F,0x00,0x00,0x00,0x02,
0x38,0x1E,0x00,0x00,0x00,0x07,0xFC,0x1C,
0x00,0x20,0x00,0x07,0xFC,0x18,0x00,0x20,
0x00,0x1F,0x0C,0x10,0x00,0x20,0x00,0x7C,
0x04,0x10,0x00,0x60,0x01,0xF0,0x00,0x10,
0x00,0x60,0x01,0xE0,0x00,0x08,0x00,0xF0,
0x00,0x80,0x00,0x08,0x03,0xF0,0x00,0x00,
0x00,0x07,0xFF,0xF0,0x00,0x00,0x00,0x07,
0xFF,0xF0,0x00,0x00,0x00,0x03,0xFF,0xE0,
0x00,0x00,0x00,0x01,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char tun48H[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x3E,
0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,
0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,
0x03,0xC0,0x00,0x00,0x00,0x00,0x1F,0x00,
0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x03,
0xF8,0x00,0x40,0x00,0x00,0x00,0x06,0x07,
0xC0,0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,
0x00,0x00,0x07,0xFF,0xE0,0x00,0x00,0x00,
0x0F,0xFF,0x80,0x00,0x00,0x00,0x7F,0xF8,
0x00,0x00,0x00,0x1F,0xFF,0xF8,0x00,0x00,
0x00,0x1F,0xFF,0xF8,0x00,0x00,0x00,0x1F,
0xFC,0x3C,0x00,0x00,0x00,0x0F,0xF8,0x0E,
0x00,0x00,0x00,0x04,0x70,0x07,0x00,0x00,
0x00,0x00,0x60,0x03,0x80,0x00,0x00,0x00,
0xC0,0x00,0xC0,0x00,0x00,0x01,0x80,0x00,
0x30,0x00,0x00,0x01,0x00,0x3C,0x18,0x00,
0x00,0x02,0x03,0xFF,0x0C,0x00,0x00,0x0C,
0x7F,0xFF,0x8E,0x00,0x00,0x18,0xFF,0xFF,
0xC7,0x80,0x00,0x78,0xFE,0x07,0x87,0xE0,
0x01,0xF0,0x70,0x07,0x03,0xF8,0x07,0xE0,
0x70,0x0E,0x03,0xFE,0x00,0x00,0x38,0x1E,
0x01,0xFE,0x00,0x00,0x3F,0xFE,0x00,0x0C,
0x00,0x00,0x1F,0xFE,0x00,0x00,0x00,0x00,
0x1F,0xFE,0x00,0x00,0x00,0x00,0x0F,0xFE,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char dan48H[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFC,0x00,0x00,0x00,0x00,0x07,0xFF,
0x00,0x00,0x00,0x00,0x7F,0xC0,0x80,0x00,
0x00,0x03,0xFF,0x80,0x40,0x00,0x00,0x01,
0xF1,0x80,0x40,0x00,0x00,0x01,0x81,0x80,
0xE0,0x00,0x00,0x00,0x01,0x93,0xF0,0x00,
0x00,0x00,0x01,0xFF,0xF0,0x00,0x00,0x00,
0x21,0xFF,0xF0,0x00,0x00,0x00,0x21,0xF8,
0x00,0x00,0x00,0x00,0x61,0xC0,0x00,0x00,
0x00,0x00,0x61,0x80,0x00,0x00,0x00,0x00,
0xF3,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x00,0x00,0x01,0xFF,0xC0,0x00,0x00,
0x00,0x03,0xFF,0xF8,0x00,0x00,0x00,0x02,
0x00,0xFC,0x00,0x00,0x00,0x04,0x02,0x1F,
0x00,0x00,0x00,0x08,0x03,0x01,0xC0,0x00,
0x00,0x38,0x03,0x00,0x7C,0x00,0x00,0xF8,
0x07,0xF8,0x3F,0xC0,0x01,0xF0,0x3F,0xFE,
0x3F,0xF8,0x03,0xC1,0xFF,0x0F,0x1F,0xF8,
0x00,0x01,0xE3,0x0F,0x0F,0xF0,0x00,0x01,
0xC3,0x0E,0x00,0x00,0x00,0x01,0x83,0xFC,
0x00,0x00,0x00,0x00,0xC7,0xF8,0x00,0x00,
0x00,0x00,0xFF,0xF8,0x00,0x00,0x00,0x00,
0x7F,0xF0,0x00,0x00,0x00,0x00,0x3F,0x03,
0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x00,
0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,
0x1F,0xF8,0x20,0x00,0x00,0x00,0xFF,0xFF,
0xE0,0x00,0x00,0x07,0xFF,0x81,0xE0,0x00,
0x00,0x07,0xE0,0x00,0xE0,0x00,0x00,0x03,
0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

char zuo16H[]={
0x18,0xC0,0x18,0xC0,0x19,0x80,0x31,0xFE,
0x33,0xFE,0x76,0xC0,0xF0,0xFC,0xB0,0xFC,
0x30,0xC0,0x30,0xC0,0x30,0xFE,0x30,0xFE,
0x30,0xC0,0x30,0xC0,0x30,0xC0,0x00,0x00,
};
char zhe16H[]={
0x03,0x00,0x03,0x0C,0x1F,0xCC,0x1F,0xD8,
0x03,0x30,0xFF,0xFE,0xFF,0xFE,0x03,0x00,
0x0F,0xF8,0x3F,0xF8,0xEC,0x18,0xCF,0xF8,
0x0C,0x18,0x0F,0xF8,0x0F,0xF8,0x00,0x00,
};

char tian16H[]={
0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x31,0x8C,
0x31,0x8C,0x31,0x8C,0x3F,0xFC,0x3F,0xFC,
0x31,0x8C,0x31,0x8C,0x31,0x8C,0x3F,0xFC,
0x3F,0xFC,0x30,0x0C,0x00,0x00,0x00,0x00,
};
char xue16H[]={
0x33,0x18,0x19,0x98,0x08,0xB0,0x7F,0xFC,
0x7F,0xFC,0x60,0x0C,0x1F,0xF0,0x1F,0xF0,
0x00,0xC0,0x7F,0xFC,0x7F,0xFC,0x01,0x80,
0x01,0x80,0x07,0x80,0x03,0x00,0x00,0x00,
};
char ke16H[]={
0x00,0x00,0x0C,0x18,0xFD,0x98,0xF8,0xD8,
0x18,0x58,0xFE,0x18,0xFE,0x98,0x18,0xD8,
0x3C,0x58,0x7E,0x1E,0xDB,0xFE,0x9B,0xF8,
0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,
};

struct Food/*定义结构体存储食物的属性*/
{
int x; /* 食物的坐标 */
int y;
int yes; /* 值为0表示屏幕上没有食物,值为1表示屏幕上有食物 */
int color; /* 食物颜色 */
}food;

struct Snake/*定义结构体存储蛇的属性*/
{
int x[N]; /* 每一节蛇的坐标 */
int y[N];
int color[N];/*存储每一节蛇的颜色*/
int node; /* 蛇的节数 */
int direction; /* 蛇移动的方向 */
int life; /* 蛇的生命,如果为1,蛇死,游戏结束 */
}snake;

void init(void)/*图形驱动*/
{
int driver=DETECT,mode=0;
registerbgidriver(EGAVGA_driver);
initgraph(&driver,&mode,"");
}

void drawmat(char *mat,int matsize,int x,int y,int color)/*汉字点阵*/
{
int i,j,k,m;
m=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<m;i++)
for(k=0;k<8;k++)
if(mat[j*m+i]&(0x80>>k))
putpixel(x+i*8+k,y+j,color);
}

void showword(void)
{/* 调用汉字点阵输出程序,显示标题和作者信息 */
drawmat(cai48H,48,249,-4,7);
drawmat(she48H,48,329,-4,7);
drawmat(tun48H,48,409,-4,7);
drawmat(dan48H,48,489,-4,7);

drawmat(cai48H,48,250,-5,4);
drawmat(she48H,48,330,-5,4);
drawmat(tun48H,48,410,-5,4);
drawmat(dan48H,48,490,-5,4);
/*作者 田学科*/
drawmat(zuo16H,16,515,465,7);
drawmat(zhe16H,16,530,465,7);

drawmat(tian16H,16,550,465,7);
drawmat(xue16H,16,565,465,7);
drawmat(ke16H,16,580,465,7);
}

void draw(void)/*画出四周的墙*/
{
if(color==15)
color=0;
setcolor(++color);
setlinestyle(SOLID_LINE,0,1);

for(i=30;i<=600;i+=10)
{
rectangle(i,40,i+10,49);
rectangle(i,451,i+10,460);
}
for(i=40;i<450;i+=10)
{
rectangle(30,i,39,i+10);
rectangle(601,i,610,i+10);
}
}

void prscore(void)
{/* 打印游戏分数 */
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,10,200,30);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,15,str);
}

void gameover(void)
{
cleardevice(); /* 清屏函数 */
for(i=0;i<snake.node;i++)/* 画出蛇死时的位置 */
{
setcolor(snake.color[i]);
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]+10);
}
prscore(); /* 显示分数 */
draw();
showword();
settextstyle(0,0,6);
setcolor(7);
outtextxy(103,203,"GAME OVER");
setcolor(RED);
outtextxy(100,200,"GAME OVER");
}

void gameplay(void)/* 玩游戏的具体过程 */
{
int flag,flag1;
randomize();
prscore();
gamespeed=50000;
food.yes=0;/* food.yes=0表示屏幕上没有食物 */
snake.life=1;/* snake.life=1表示蛇是活着的 */
snake.direction=4;/* 表示蛇的初始方向为向右 */
snake.node=2; /* 蛇的初始化为两节 */
snake.color[0]=2; /*两节蛇头初始化为绿色*/
snake.color[1]=2;
snake.x[0]=100;snake.y[0]=100;
snake.x[1]=110;snake.y[1]=100;
food.color=random(15)+1;
while(1)
{
while(1)
{
if(food.yes==0) /* 如果蛇活着 */
{
while(1)
{
flag=1;
food.yes=1;
food.x=random(56)*10+40;
food.y=random(40)*10+50;
for(i=0;i<snake.node;i++)
{
if(food.x==snake.x[i]&&food.y==snake.y[i])
flag=0;
}
if(flag) break;
}
}
if(food.yes)
{
setcolor(food.color);
rectangle(food.x,food.y,food.x+10,food.y+10);
}

for(i=snake.node-1;i>0;i--)
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}

switch(snake.direction)
{
case 1: snake.y[0]-=10;break;
case 2: snake.y[0]+=10;break;
case 3: snake.x[0]-=10;break;
case 4: snake.x[0]+=10;break;
}

for(i=3;i<snake.node;i++)
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
gameover();
snake.life=0;
break;
}
}

if(snake.x[0]<40||snake.x[0]>590||snake.y[0]<50||snake.y[0]>440)
{
gameover();
snake.life=0;
}

if(snake.life==0)
break;

if(snake.x[0]==food.x&&snake.y[0]==food.y)/*蛇吃掉食物*/
{
setcolor(0);
rectangle(food.x,food.y,food.x+10,food.y+10);
snake.x[snake.node]=-20;
snake.y[snake.node]=-20;
snake.color[snake.node]=food.color;
snake.node++;
food.yes=0;
food.color=random(15)+1;
score+=10;
prscore();
if(score%100==0&&score!=0)
{
for(i=0;i<snake.node;i++)/* 画出蛇 */
{
setcolor(snake.color[i]);
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]+10);
}
sound(200);
delay(50000);delay(50000);delay(50000);
delay(50000);delay(50000);delay(50000);
nosound();
gamespeed-=5000;
draw();
}
else
{
sound(500);
delay(500);
nosound();
}
}

for(i=0;i<snake.node;i++)/* 画出蛇 */
{
setcolor(snake.color[i]);
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]+10);
}

delay(gamespeed);
delay(gamespeed);
flag1=1;
setcolor(0);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]+10);

if(kbhit()&&flag1==1)/*如果没按有效键就重新开始循环*/
{
flag1=0;
key=bioskey(0);
if(key==esc)
exit(0);
else if(key==up&&snake.direction!=2)
snake.direction=1;
else if(key==down&&snake.direction!=1)
snake.direction=2;
else if(key==left&&snake.direction!=4)
snake.direction=3;
else if(key==right&&snake.direction!=3)
snake.direction=4;
}
}
if(snake.life==0)/*如果蛇死了就退出循环*/
break;
}
}

void main(void)
{
while(1)
{
color=0;
init();
cleardevice();
showword();
draw();
gameplay();
setcolor(15);
settextstyle(0,0,2);
outtextxy(200,400,"CONTINUE(Y/N)?");
while(1)
{
key=bioskey(0);
if(key==Y||key==n||key==esc)
break;
}
if(key==n||key==esc)
break;
}
closegraph();
}

不用图形编程,就在DOS平台上编,按键用_getch()

不会

vc++2005

  • C璇█瀹炵幇璐悆铔灏忔父鎴!(瓒呯畝鍗曡缁)璇︾粏鎬濊矾+婧愮爜鍒嗕韩
    绛旓細璐悆铔囷紝杩欐缁忓吀鐨勬父鎴忥紝浠ュ叾绠鍗曡屽瘜鏈夌瓥鐣ョ殑鐜╂硶娣卞彈鍠滅埍銆傚湪C璇█鐨勪笘鐣岄噷锛屾垜浠彲浠ヨ交鏉惧疄鐜颁竴涓睘浜庤嚜宸辩殑鐗堟湰銆傝繖涓」鐩笉浠呴傚悎鍒濆鑰咃紝杩樻槸妫楠屽熀纭缂栫▼鎶鑳界殑瀹炴垬骞冲彴銆傛垜浠皢鍦╒S2019缂栬瘧鍣ㄥ拰easyX鍥惧舰搴撶殑鏀寔涓锛岀敤C璇█涓庡皯璁窩++鐨勭粨鍚堬紝瀹屾垚涓涓洿瑙傜殑娓告垙妗嗘灦銆備唬鐮佺殑鏍稿績閮ㄥ垎锛屽涓诲嚱鏁癿ain...
  • c璇█璐悆铔婧愪唬鐮佹庝箞鐢?
    绛旓細1.鍦╒C++6.0涓氳繃鈥淔ile鈥濊彍鍗曚笅鐨 鈥淥pen鈥濆瓙鑿滃崟鎵撳紑璐悆铔囦唬鐮 2.鍦╒C++6.0涓氳繃鈥淏uild鈥濊彍鍗曚笅鐨 鈥淐ompile xxxx.xx鈥濆瓙鑿滃崟缂栬瘧璐悆铔浠g爜 3.鍦╒C++6.0涓氳繃鈥淏uild鈥濊彍鍗曚笅鐨 鈥淓xecute xxxx.exe鈥濆瓙鑿滃崟杩愯璐悆铔囩▼搴 闄:鍦╒C++6鐜涓嬪彲杩愯鐨C/C++璐悆铔囨簮浠g爜(鏃犵増鏉,鑷繁缂栧啓,娆㈣繋浠绘剰淇敼鎷疯礉...
  • 璐悆铔嘽璇█涓嶇敤windows.h
    绛旓細浣跨敤C璇█缂栧啓璐悆铔娓告垙鏃朵笉闇瑕乄indows.h澶存枃浠讹紝浣嗛渶瑕佷娇鐢ㄥ叾浠栧熀鏈ご鏂囦欢锛屽stdio.h銆乧onio.h銆乻tring.h绛夈
  • 璺眰c璇█璐悆铔浠g爜,杩愯鐜:vc++6.0 鎴栬卌ode blocks,浠ュ墠鍦ㄧ綉绔...
    绛旓細include<stdio.h> include<stdlib.h> include include<conio.h> typedef struct snake { int a;int b;struct snake *u;struct snake *n;}snake,*snake1;typedef struct food { int a;int b;}food;void main(){ char c,c0 = 'd';int i,j,k,n=1,t,at;snake p,q;snake *dd,*dd...
  • 鍦╠os鐜涓c璇█缂栫▼缂栦竴涓璐悆铔娓告垙
    绛旓細(鎺у埗璐悆铔鐨勯熷害) double ss=0,tt=0;//缁熻鏃堕棿鎵鐢ㄥ弬鏁 class Node { Node(): x(0), y(0), prior(0), next(0) { } int x; int y; Node *prior; Node *next; friend class Snake; }; class Snake { public: Snake(); ~Snake(); void output(); void move(); void ...
  • c璇█ 璐悆铔 绋嬪簭
    绛旓細printf(" ---璐悆铔鐨勭Щ鍔---"); DrawBorder(); //鑷畾涔夊嚑涓泧鐨勮韩浣 AddBody(pos); pos.X += 2; AddBody(pos); pos.X += 2; AddBody(pos); pos.X += 2; AddBody(pos); pos.X += 2; AddBody(pos); pos.X += 2; AddBody(pos); pos.X += 2; AddBody(pos); //鎺у埗铔囩殑绉...
  • C璇█鍐璐悆铔
    绛旓細C璇█鍐璐悆铔 20 璋佸彲浠ョ敤C璇█甯垜鍐欎釜璐悆铔囧皬娓告垙,鎴戠敤鐨勮蒋浠舵槸 turboc2 X闆堕浂X | 娴忚2456 娆 |涓炬姤 鎴戞湁鏇村ソ鐨勭瓟妗2016-01-15 鏈浣崇瓟妗 #include <stdio.h>#include <graphics.h>#include <stdlib.h>#include <dos.h> /*寮曠敤鐨勫簱鍑芥暟*/#define LEFT 0x4b00#define RIGHT 0x4d00#define ...
  • C璇█鍙互缂栧啓璐悆铔娓告垙鍚?
    绛旓細褰撶劧鍙互杈规父鎴忎簡锛屾眽瀛楀彲浠ョ敤鐐归樀鏄剧ず锛屽鏋滄槸windows c 鐨勮瘽鏄剧ず姹夊瓧灏辨洿绠鍗曚簡锛佹父鎴忕獥浣撳彲浠ョ敤windows c 缂栫▼瀹炵幇锛佺粰浣犱竴涓璐悆铔鐨勬父鎴忓惂锛屽湪tc 涓缂栬瘧鎴愬姛锛佸彲浠鑱婏細969370950 include<stdio.h> include<dos.h> include<conio.h> include<stdlib.h> define ESC 0x011b define LEFT 0x4b00 ...
  • 鐢C璇█缂栧啓鐨勫皬娓告垙浠g爜鏄浠涔?
    绛旓細/*涔熶笉鐭ラ亾浣犳槸浠涔堢骇鍒殑,鎴戞槸涓涓柊鎵,鍒氭帴瑙︾紪绋嬭瑷,浠ヤ笅鏄垜鑷繁鍙樺緱涓涓皬绋嬪簭,鍦ㄦ墍鏈c璇█鐨缂栬瘧鍣(vc++6.0銆乼urbo???)涓婇兘鑳借繍琛,浣犺繕鍙互杩涗竴姝ユ敼杩涖傝繖鏄竴涓被浼璐悆铔鐨勫皬娓告垙銆傜浣犲ソ杩*/\x0d\x0a/*璐悆铔*/\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0a#includ...
  • C璇█鍋璐悆铔囩敤浠涔杞欢缂栧啓?
    绛旓細闂涓婂凡缁忚浜嗭紝鏄敤C璇█鍋氱殑璐悆铔囷紝閭d箞缂栧啓瀹冪殑杞欢灏辨槸锛欳璇█锛堜竴闂ㄩ氱敤璁$畻鏈虹紪绋嬭瑷锛屽箍娉涘簲鐢ㄤ簬搴曞眰寮鍙戯級銆
  • 扩展阅读:少儿学编程的弊端 ... c++和python先学哪个 ... c++编程适合几岁学 ... 不适合学编程的人 ... 初学编程必背50个 ... c++编程适合多大孩子 ... 小学生学python还是c++ ... 如何自己编程做游戏 ... python和c++哪个更值得学 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网