解决展示的设计思路及代码(新人从0到1调试到运动正常大概需要1~2个小时,如果再带深究一些内容点,半天怎么都能完成的)
day2解决的问题:
- 蛇动起来。在控制台中,一个比较好的思路就是刷新控制台,然后输出结果。综合框架设计如下所示,分为清屏、输出、延时、处理四个步骤。清屏用window的是system(“cls”)linux下为system(“printf “\033c””),但是貌似会直接输出最终结果,输出上一节已经完成,延时有好几种实现方案,新手可以调用sleep(),我这里用的是clock(),处理则是上下左右的设定及移动,以及是否吃到了食物,以及如何更新。以下代码给出了整体思路以及abc的完整实现,d的实现比较复杂,单独来讲。
#include <ctime>
#include <iostream>
using namespace std;
void delay(int time) {
clock_t now = clock();
while (clock() - now < time) {
}
}
int main() {
Snake snake;
Food food;
auto beg = snake.gethead();
auto end = snake.gettail();
while (snake.live()) {
vvc[beg.first][beg.second] = body_smb;
system("cls");
print_all(vvc);
delay(500);
beg = snake.gethead();
if (end != snake.gettail()) {
vvc[end.first]