C语言 贪吃蛇邮箱控制台报错

编程_小学僧 2021-01-18 09:17:55

代码如下
x #include<stdio.h>#include<Windows.h>#include<conio.h>​#define MAP_WIDTH 60 //平均宽度#define MAP_HEIGHT 20 //平均高度​struct snake{ //x坐标 int x;​ //y坐标 int y;​ //@或者* char ch;};//结构体数组:代表蛇struct snake g_snake[MAP_WIDTH*MAP_HEIGHT];//蛇实际的长度int g_snake_length = 5;void SetPos(int x, int y){​ COORD point = { x , y }; //光标要设置的位置x,y HANDLE HOutput = GetStdHandle(STD_OUTPUT_HANDLE); //使用GetStdHandle(STD_OUTPUT_HANDLE)来获取标准输出的句柄 SetConsoleCursorPosition(HOutput, point); //设置光标位置}​void DrawSnake(){ int i = 0; for (i = 0; i < g_snake_length; i++) { //设置坐标到(0,0)位置 SetPos(g_snake[i].x, g_snake[i].y);​ //绘制贪吃蛇**** printf("%c", g_snake[i].ch); }​​}​void HideCorsor()​{​ HANDLE fd = GetStdHandle(STD_OUTPUT_HANDLE);​ CONSOLE_CURSOR_INFO cinfo;​ cinfo.bVisible = 0;​ cinfo.dwSize = 1;​ if (SetConsoleCursorInfo(fd, &cinfo))​ printf("执行成功\n");​ else​ printf("执行失败\n");​ ​}int main(){ //隐藏光标 HideCorsor(); int i, j; //[0,21) for (j = 0; j < MAP_HEIGHT + 1; j++) { if (j == MAP_HEIGHT) { //绘制一行 for (i = 0; i < MAP_WIDTH; i++) { printf("-"); } printf("\n");​ } else {   //绘制空行 for (i = 0; i < MAP_WIDTH; i++) { printf(" "); } printf("|"); printf("\n"); }​ } g_snake_length = 5;​ g_snake[0].x = 0; g_snake[0].y = 0; g_snake[0].ch = '*';​ g_snake[1].x
[align=center][align=left][align=left][align=left][align=center][align=right][align=left]
[/align][/align][/align][/align][/align][/align][/align]= 1; g_snake[1].y = 0; g_snake[1].ch = '*';​ g_snake[2].x = 2; g_snake[2].y = 0; g_snake[2].ch = '*';​ g_snake[3].x = 3; g_snake[3].y = 0; g_snake[3].ch = '*';​ g_snake[4].x = 4; g_snake[4].y = 0; g_snake[4].ch = '@';​ //绘制贪吃蛇**** DrawSnake();​ while (1) { int tail_x = g_snake[0].x; int tail_y = g_snake[0].y; //向右移动一格 //(0,0),(1,0),(2,0),(3,0),(4,0)@ //         (1,0),(2,0),(3,0),(4,0),(5,0)@​ //[0,5) for (i = 0; i < g_snake_length - 1; i++) { g_snake[i].x = g_snake[i + 1].x; g_snake[i].y = g_snake[i + 1].y; } int key = _getch(); switch (key) { case 'w'://上 printf("上"); g_snake[g_snake_length - 1].y -= 1; break;​ case 'a'://左 printf("左"); g_snake[g_snake_length - 1].x -= 1; break;​ case 's'://下 printf("下"); g_snake[g_snake_length - 1].y += 1; break;​ case 'd'://右 printf("右"); g_snake[g_snake_length - 1].x += 1; break; } //清除尾坐标 SetPos(tail_x, tail_y); putchar(' ');​​ //绘制贪吃蛇**** DrawSnake();​​ }​​​​ return 0;}
...全文
80 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧