#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); while (1) { gotoxy(0, 0); HideCursor(); updateWithInput(canvas, Length, Width); print(canvas, Length, Width); } }怎样更改这段代码,可以没有输入状态下,蛇朝着原方向前进
时间: 2024-03-20 08:39:29 浏览: 54
使用include <iostream>时一定要加using namespace std
你可以在 while 循环中添加一个 sleep 函数,使程序每隔一定的时间自动更新蛇的位置。同时,在 updateWithInput 函数中判断当前的移动方向,如果没有输入方向,就按照原来的方向继续前进。修改后的代码如下:
```
#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);
while (1)
{
gotoxy(0, 0);
HideCursor();
updateWithInput(canvas, Length, Width, moveDirection);
print(canvas, Length, Width);
Sleep(100); // 暂停 100 毫秒
}
}
```
同时,在 updateWithInput 函数中,在判断输入方向之前,先判断当前的移动方向,如果为0,说明没有输入方向,就将原来的方向作为当前方向。修改后的 updateWithInput 函数如下:
```
void updateWithInput(int canvas[][Width], int Length, int Width, int& moveDirection)
{
if (_kbhit())//判断是否有输入
{
moveDirection = getMoveDirection(_getch(), moveDirection);//获取输入方向
}
move(canvas, Length, Width, moveDirection);//移动蛇
}
```
这样就可以实现没有输入状态下,蛇朝着原方向前进的效果。
阅读全文