首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言_贪吃

C语言_贪吃 文章目录 C语言_贪吃 1.主要原理 2.操作说明 3.准备环节——所需库函数、全局变量和结构体声明 4.所需代码块(函数) 1)光标移动到指定位置 2)打印游戏边框及初始画面...3)相应按键操作 4)移动 5)随机生成食物 6)判断的运动是否合法 5.main函数 6.反思 1)关于判断: 2)细节/升级版: 1.主要原理 身:由数组构造 移动:绘制一个新蛇头,擦掉尾...,更新数组 进食:判断一旦蛇头遇到食物,则只增加蛇头而不擦除尾,更新数组 2.操作说明 1)用户通过w, s, a, d键控制的上下左右移动(一次移动一个方格长度) 2)一般情况下界面保持有一个随机的食物...+) { snake.arr[i] = { WIDETH - 2 + 2 * i , HIGHTH / 2 }; printf("■"); } } 3)相应按键操作 利用函数getch()从控制台读取一个字符...(蛇头方向调转180°)可以设为非法操作; 不能碰到自己的身体; 增加暂停功能; 实时显示分数变化; 用户不进行操作时也让保持移动,用户操作只改变的加速度方向

65020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言项目---贪吃

    C语言的system函数可以达到执行系统操作。...接下来介绍宽字符概念 宽字符 普通字符占一个字节,但是宽字符占两个字节,再简单一点讲一下,C语言的国际化特性相关的知识,过去C语言并不适合非英语国家使用,C语言最初假定字符都是单字节的,但是这些假定并不是再世界上任何地方都适用...后来为了使C语言适应国际化,C语言的标准中不断加入了国际化的支持。 提供的函数用于控制c标准库中对于不同的地区会产生不一样行为的部分。...下面代码演示的是 C语言默认的本地信息是什么?...→分别控制移动\n"); SetPos(65, 16); printf("F1:加速 F2:减速"); SetPos(65, 17); printf("ESC:退出游戏 space:暂停游戏

    3010

    c语言编写贪吃要会什么_c语言贪吃原理

    的方向: 首先,我们再来构造一个结构体,用来存储辅助移动的结构体: typedef struct DELTA_MOVE{ int deltRow; int deltCol; }DELTA_MOVE...int i = 0;//因为编译软件运行地太快,所以,为了能让我们反应地过来,我们使得计算机需运行cd次,才能有效执行一次 int cdTime = DEFAULT_COUNT;//(即:通俗来讲,就是为的自动移动加一个...cd,使得移动速度降低) SNAKE_BODY snakeBody[MAX_LEN] = { {0,0}}; SNAKE *player = { 0, 5, 1, 3, NULL}; hideCursor...= tempIndex; snakeHeadType = getHeadType(player.direct); } } if(i > cdTime) { //TODO 生成食物 //TODO 移动...i = 0; } } //善后处理 } 现在,我们来实现下移动的要求: #define BLOCK 0 void move(int *headXPos, int *headYPos, DELTA_MOVE

    1.4K10

    通过C语言设计的贪吃游戏(控制台终端)

    一、项目介绍 当前通过控制台终端实现一个贪吃小游戏,实现游戏的绘制、更新、控制等功能。...二、实现效果 三、完整代码 下面贴出的代码在Windows系统上编译运行,需要使用conio.h头文件中的getch()函数来获取键盘输入,用于控制移动。...可以通过按下’w’、‘s’、‘a’、'd’四个键来分别控制的向上、向下、向左、向右移动。同时还有一个暂停函数Pause(),用于控制移动速度,可以根据需要调整暂停时间。...Move()函数用于移动,根据当前行进方向进行移动。Control()函数用于用户操作,读取键盘输入并更新的行进方向。Pause()函数用于控制游戏速度,通过调用Sleep()函数控制暂停时间。...void Control(); //用户操作,控制移动 void Pause(); //游戏暂停 void GameOver(); //游戏结束 int main() { srand(

    34130

    贪吃C语言实现)

    光标隐藏无效 curInfo.bVisible = FALSE; //将光标设置为不可见 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台句柄...定义光标位置的结构体变量 pos.X = x; //横坐标 pos.Y = y; //纵坐标 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台句柄...光标隐藏无效 curInfo.bVisible = FALSE; //将光标设置为不可见 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台句柄...颜色设置 颜色设置函数的作用是,将此后输出的内容颜色都更为所指定的颜色,接收的参数c是颜色代码,十进制颜色代码表如下: //颜色设置 void color(int c) { SetConsoleTextAttribute...其余按键无效,下一次移动方向设置为上一次移动方向,即移动方向不变。

    2.1K20

    C语言贪吃完整代码

    #ifndef __cplusplus typedef char bool; #define false 0 #define true 1 #endif //将光标移动控制台的(x,y)坐标点处...{ int speed;//移动的速度 int len;//的长度 int x[SNAKESIZE];//组成身的每一个小方块中x的坐标 int y[SNAKESIZE];//组成身的每一个小方块中...snakeStatus(); //从控制移动光标 void gotoxy(int x, int y); int key = 72;//表示移动的方向,72为按下“↑”所代表的数字 //用来判断是否吃掉了食物...*changeFlag为0表明此时没有吃到食物,因此每走一步就要擦除掉尾,以此营造一个移动的效果 *为1表明吃到了食物,就不需要擦除尾,以此营造一个身增长的效果 */ if (changeFlag...[i] = snake.y[i - 1]; } //当前移动的方向不能和前一次的方向相反,比如往左走的时候不能直接按右键往右走 //如果当前移动方向和前一次方向相反的话,把当前移动的方向改为前一次的方向

    3.8K40

    C语言贪吃完整代码

    C语言贪吃完整代码 #include #include #include //windows编程头文件 #include <time.h...1 #endif //将光标移动控制台的(x,y)坐标点处 void gotoxy(int x, int y) { COORD coord; coord.X = x; coord.Y...struct { int speed;//移动的速度 int len;//的长度 int x[SNAKESIZE];//组成身的每一个小方块中x的坐标 int y[SNAKESIZE];...(); //的状态 bool snakeStatus(); //从控制移动光标 void gotoxy(int x, int y); int key = 72;//表示移动的方向,72为按下“↑...[i] = snake.y[i - 1]; } //当前移动的方向不能和前一次的方向相反,比如往左走的时候不能直接按右键往右走 //如果当前移动方向和前一次方向相反的话,把当前移动的方向改为前一次的方向

    3.9K20

    C语言项目实战——贪吃

    C语言实现贪吃 前言 贪吃是一款经典的休闲益智类电子游戏,通常用C语言实现时,会涉及到以下几个主要部分: 游戏初始化:设置游戏窗口大小、颜色、速度等参数,并初始化的长度和位置。...游戏循环:在一个无限循环中,不断更新游戏状态,包括移动、食物的生成和碰撞检测等。 移动:根据用户的输入(通常是方向键),控制的头部向相应方向移动,并更新的身体位置。...在编程语言的学习中,我将以贪吃为例,从设计到代码来展示一个C语言项目实战,进而再一步提升读者对C语言的理解和认知。...二、游戏效果演示 三、课程目标 使用C语言在Windows环境的控制台中模拟实现经典小游戏贪吃 实现基本的功能: 贪吃地图绘制 吃食物的功能(上、下、左、右方向键控制的动作) 撞墙死亡 撞自身死亡...这里再简单的讲一下C语言的国际化特性相关的知识,过去C语言并不适合非英语国家(地区)使用。 C语言最初假定字符都是但自己的。但是这些假定并不是在世界的任何地方都适用。

    30910

    C语言项目】贪吃(上)

    一、目标 使用C语言在Windows环境的控制台中模拟实现贪吃游戏 功能: ①贪吃地图 ②移动吃食物 ④撞墙或者撞到自己死亡 ⑤计算得分 ⑥暂停游戏 ⑦加速身 ⑧计算得分...贪吃"); return 0; } (2)COORD坐标 COORD是Windows API中的一个结构体,表示一个字符在控制台屏幕上的坐标,左上角的坐标为(0,0) COORD中有两个...setlocale char* setlocale (int category, const char* locale); 该函数用来修改当前地区 第一个 第二个参数仅定义了两种可能的取值: “C”...可以把宽字符看做是长的字符 #include #include int main() { setlocale(LC_ALL, ""); wchar_t c =...L's'; wchar_t s = L"little_monster"; wprintf(L"%lc",c); wprintf(L"%ls",s); } (5)地图坐标 这里我们实现的地图是27*58

    11810

    C++实现贪吃(控制台)

    可以直接运行的: //本来我是想用C语言实现的无奈水平有限,只能在C++下执行了,注意: 这里使用的字符集为Unicode #define _CRT_SECURE_NO_WARNINGS #include..."每个食物得分: %d分", add); gotoxy(64, 16); printf("不能撞墙和咬到自己哦~"); gotoxy(64, 18); printf("用 ↑ ↓ ← → 分别控制移动...gotoxy(30, 8); printf("tipl: 不能撞墙,不能咬到自己"); color(10); gotoxy(30, 11); printf("tip2: 用↑,↓,←,→分别控制移动...还原原始窗口标题 SetConsoleTitle(pszOldWindowTitle); return(hwndFound); //返回句柄 } 功能丰富 有音效的: //本来我是想用C语言实现的无奈水平有限..."每个食物得分: %d分", add); gotoxy(64, 16); printf("不能撞墙和咬到自己哦~"); gotoxy(64, 18); printf("用 ↑ ↓ ← → 分别控制移动

    1.3K00

    c语言】简单贪吃的实现

    一、游戏说明 贪吃地图绘制 吃食物的功能 (上、下、左、右方向键控制的动作)​ 撞墙死亡 撞自身死亡 计算得分 身加速、减速 暂停游戏 二、地图坐标​ 我们假设实现一个棋盘27行,58列的棋盘..."); system("cls"); //功能介绍信息 SetPos(15, 10); printf("用 ↑ . ↓ . ← . → 来控制移动,F3是加速,F4是减速\n"); SetPos...用 ↑ . ↓ . ← . → 来控制移动"); SetPos(62, 17); printf("3....先创建下一个节点,根据移动方向和蛇头的坐标,移动到下一个位置的坐标。...移动后,判断此次移动是否会造成撞墙(KillByWall)或者撞上自己身(KillBySelf),从而影响游戏的状态。

    19410

    c语言贪吃源代码简单_java贪吃源码

    所用知识: 一维数组的使用 结构体的使用 播放音乐函数的使用 电脑按键的检测 窗口光标坐标函数的使用 相关函数讲解 1.光标移动到某一指定坐标的函数 #include //坐标的API...coord (坐标系coord) coord.X = x; //横坐标x coord.Y = y; //纵坐标y SetConsoleCursorPosition(handle, coord); //移动光标...coord (坐标系coord) coord.X = x; //横坐标x coord.Y = y; //纵坐标y SetConsoleCursorPosition(handle, coord); //移动光标...changeflag) { gotoxy(snake.x[snake.len-1 ], snake.y[snake.len-1 ]);//总共有len个的身体单元●,因为数组,最后一个是len-1...coord (坐标系coord) coord.X = x; //横坐标x coord.Y = y; //纵坐标y SetConsoleCursorPosition(handle, coord); //移动光标

    2.4K10

    C语言 小游戏之贪吃

    大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。 还记得非常久曾经听群里人说做贪吃什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路。...前不久群里有些人又在谈论C语言贪吃的事了,看着他们在做,我也打算做一个出来。 如今大三,经过了这一年半的编程,如今认为这个C语言的贪吃还是比較简单的,花的时间不非常多!.../控制台的标题 memset(GameMap, '..., GameMap[i][j]); printf("\n"); } printf("\n小小C语言贪吃\n"); printf("按随意方向键開始游戏\n"); getch();..., GameMap[i][j]); printf("\n"); } printf("\n小小C语言贪吃\n"); printf("按随意方向键開始游戏\n"); } } void

    98120
    领券