用C语言编写贪吃蛇代码(难度可选)

这是一个使用C语言编写的贪吃蛇游戏代码,包含了游戏的初始化、移动、游戏结束和输出等功能。玩家可以通过键盘控制贪吃蛇移动,游戏难度可调,蛇吃到食物会增长,碰到边界或自身则游戏结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*********************************************************
********************贪吃蛇(难道可选)********************
**************制作者:Xu Lizi      日期:2012/12/31********
********************部分函数有借鉴************************
**********************************************************/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>


int snakey[100]={5,4,3,2,1};     /*定义蛇的横坐标*/
int snakex[100]={1,1,1,1,1};     /*定义蛇的纵坐标,蛇头起始位置为(5,1)*/
int life=0;    /*定义蛇的生命,0表示存活,1表示死亡*/
int lenght=5;      /*定义蛇的长度,初始为5节*/


char map[12][24]={"***********************",   /*y*/
                  "*                     *",
                  "*                     *",
                  "*                     *",
                  "*                     *",
                  "*                     *",
                  "*                     *",
                  "*                     *",
                  "*          
好的,我可以为您提供一个简单难度的C语言贪吃蛇代码示例。代码如下: ```c #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <Windows.h> #define ROW 20 #define COL 20 int map[ROW][COL] = { 0 }; //地图 int snake[ROW*COL][2] = { 0 }; //蛇 int food[2] = { 0 }; //食物 int head = 0, tail = 0; //蛇头和蛇尾指针 int dir = 0; //蛇的方向 int score = 0; //得分 void init_map() //初始化地图 { for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { if (i == 0 || j == 0 || i == ROW - 1 || j == COL - 1) { map[i][j] = -1; //设置边界 } else { map[i][j] = 0; //清空地图 } } } } void init_snake() //初始化蛇 { int x = ROW / 2, y = COL / 2; map[x][y] = 1; //设置蛇头 snake[head][0] = x; snake[head][1] = y; head++; map[x][y + 1] = 2; //设置蛇身 snake[head][0] = x; snake[head][1] = y + 1; head++; map[x][y + 2] = 3; //设置蛇尾 snake[head][0] = x; snake[head][1] = y + 2; head++; tail = 1; } void init_food() //初始化食物 { int x, y; do { x = rand() % ROW; y = rand() % COL; } while (map[x][y] != 0); //找到一个空位置 map[x][y] = -2; //设置食物 food[0] = x; food[1] = y; } void draw_map() //绘制地图 { system("cls"); //清屏 for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { if (map[i][j] == -1) { printf("#"); //画边界 } else if (map[i][j] == -2) { printf("*"); //画食物 } else if (map[i][j] > 0) { printf("o"); //画蛇身 } else { printf(" "); //画空格 } } printf("\n"); } printf("得分:%d\n", score); } void update_snake() //更新蛇 { int x = snake[tail][0], y = snake[tail][1]; map[x][y] = 0; //清空蛇尾 tail++; x = snake[head - 1][0]; y = snake[head - 1][1]; switch (dir) { case 0: //向上 x--; break; case 1: //向右 y++; break; case 2: //向下 x++; break; case 3: //向左 y--; break; } if (map[x][y] == -2) //吃到了食物 { score++; init_food(); } else if (map[x][y] > 0) //撞到了蛇身 { printf("游戏结束,得分:%d\n", score); exit(0); } map[x][y] = head + 1; //更新蛇头 snake[head][0] = x; snake[head][1] = y; head++; } void control() //控制方向 { if (_kbhit()) { char ch = _getch(); switch (ch) { case 'w': case 'W': if (dir != 2) { dir = 0; } break; case 'd': case 'D': if (dir != 3) { dir = 1; } break; case 's': case 'S': if (dir != 0) { dir = 2; } break; case 'a': case 'A': if (dir != 1) { dir = 3; } break; } } } int main() { init_map(); init_snake(); init_food(); while (1) { draw_map(); update_snake(); control(); Sleep(100); //控制蛇的速度 } return 0; } ``` 这是一个简单版的贪吃蛇代码,包含了基本的地图、蛇、食物、控制等功能,您可以根据自己的需求进行修改和扩展。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值