酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用c语言写一个贪吃蛇游戏

贪吃蛇游戏的代码较长,这里给出一个简化版的C语言实现。你可以根据需要进行修改和扩展。 ```c #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #define WIDTH 50 #define HEIGHT 25 int snake_x[WIDTH * HEIGHT], snake_y[WIDTH * HEIGHT]; int food_x, food_y; int snake_length = 1; int direction = 1; // 0:上, 1:右, 2:下, 3:左 void gotoxy(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } void generate_food() { srand((unsigned)time(NULL)); food_x = rand() % (WIDTH - 2) + 1; food_y = rand() % (HEIGHT - 2) + 1; } void draw() { system("cls"); for (int i = 0; i < WIDTH; i++) { printf("#"); } printf(" "); for (int i = 1; i < HEIGHT - 1; i++) { printf("#"); for (int j = 1; j < WIDTH - 1; j++) { if (i == food_y && j == food_x) { printf("*"); } else { int is_snake = 0; for (int k = 0; k < snake_length; k++) { if (i == snake_y[k] && j == snake_x[k]) { printf("O"); is_snake = 1; break; } } if (!is_snake) { printf(" "); } } } printf("# "); } for (int i = 0; i < WIDTH; i++) { printf("#"); } printf(" "); } int update() { if (_kbhit()) { char ch = _getch(); if (ch == 'w' && direction != 2) { direction = 0; } else if (ch == 'd' && direction != 3) { direction = 1; } else if (ch == 's' && direction != 0) { direction = 2; } else if (ch == 'a' && direction != 1) { direction = 3; } } int new_x = snake_x[0], new_y = snake_y[0]; if (direction == 0) { new_y--; } else if (direction == 1) { new_x++; } else if (direction == 2) { new_y++; } else if (direction == 3) { new_x--; } if (new_x == food_x && new_y == food_y) { snake_length++; generate_food(); } else { for (int i = snake_length - 1; i > 0; i--) { snake_x[i] = snake_x[i - 1]; snake_y[i] = snake_y[i - 1]; } } snake_x[0] = new_x; snake_y[0] = new_y; if (new_x <= 0 || new_x >= WIDTH - 1 || new_y <= 0 || new_y >= HEIGHT - 1) { return 0; } for (int i = 1; i < snake_length; i++) { if (new_x == snake_x[i] && new_y == snake_y[i]) { return 0; } } return 1; } int main() { snake_x[0] = WIDTH / 2; snake_y[0] = HEIGHT / 2; generate_food(); while (1) { draw(); if (!update()) { break; } Sleep(100); } printf("游戏结束! "); return 0; } ``` 这个简化版的贪吃蛇游戏使用了Windows API中的`SetConsoleCursorPosition`函数来控制光标位置,以及`_kbhit`和`_getch`函数来检测键盘输入。游戏中,蛇会根据用户的输入方向键来改变移动方向,吃到食物后会变长。当蛇撞到墙或者自己时,游戏结束。 [2024-06-19 12:26:38 | AI写代码神器 | 1218点数解答]

相关提问