#include<iostream> #include"初始化蛇.h" #include"打印.h" #include"判断方向.h" #include"去位置(x,y).h" #include"蛇的移动.h" #include<Windows.h> #include"隐藏光标.h" using namespace std; void main() { const int Length = 40;//场景的高度 const int Width = 60;//场景的宽度 int moveDirection; int canvas[Length][Width];//以数组的形式形成场景 //初始化数组(订造场景) for (int i = 0; i < Length; i++) { for (int j = 0; j < Width; j++) { canvas[i][j] = 0; } } for (int i = 0, j = 0; j < Width; j++)//定制上下边框 { canvas[i][j] = -1; canvas[Length - 1][j] = -1; } for (int i = 0, j = 0; j < Length; j++)//定制左右边框 { canvas[j][i] = -1; canvas[j][Width - 1] = -1; } inisnake(canvas, Length, Width); inimove(moveDirection); inifood(canvas, Length, Width); int* still = &moveDirection; while (1) { gotoxy(0, 0); HideCursor(); moveDirection = *still; updateWithInput(canvas, Length, Width,moveDirection,still); print(canvas, Length, Width); Sleep(100); } }根据代码,帮我梳理出该实验用来哪些方法,一一梳理出来,要求包含所有能包含的,且具体详细
时间: 2024-04-03 14:35:13 浏览: 80
该实验包含以下方法:
1. `inisnake`:初始化蛇的位置。该方法的参数为场景数组 `canvas`、场景高度 `Length`、场景宽度 `Width`,没有返回值。该方法通过修改 `canvas` 数组中的数值,将蛇的位置初始化在场景中心。
2. `inimove`:初始化蛇的移动方向。该方法的参数为一个整型变量 `moveDirection`,没有返回值。该方法将 `moveDirection` 初始化为默认方向向右。
3. `inifood`:初始化食物位置。该方法的参数为场景数组 `canvas`、场景高度 `Length`、场景宽度 `Width`,没有返回值。该方法通过修改 `canvas` 数组中的数值,在场景中随机生成一个食物位置。
4. `updateWithInput`:根据用户输入更新场景状态。该方法的参数为场景数组 `canvas`、场景高度 `Length`、场景宽度 `Width`、当前移动方向 `moveDirection`、指向移动方向的指针 `still`,没有返回值。该方法通过检测用户输入的方向键,更新移动方向并移动蛇的位置。
5. `print`:打印场景到控制台。该方法的参数为场景数组 `canvas`、场景高度 `Length`、场景宽度 `Width`,没有返回值。该方法通过遍历 `canvas` 数组,将每个位置的数值转化为对应的字符,输出到控制台上。
6. `gotoxy`:将光标移动到指定位置。该方法的参数为屏幕上的行数和列数,没有返回值。该方法通过调用 Windows API 函数 `SetConsoleCursorPosition` 来实现光标移动。
7. `HideCursor`:隐藏控制台光标。该方法没有参数和返回值。该方法通过调用 Windows API 函数 `SetConsoleCursorInfo` 来实现光标隐藏。
阅读全文