加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
startinterface.cpp 1.54 KB
一键复制 编辑 原始数据 按行查看 历史
斯内克 提交于 2017-02-07 22:21 . 1.0
#include "startinterface.h"
#include <windows.h>
void StartInterface::PrintFirst()//蛇从左边出现到完全出现的过程
{
for (auto& point : startsnake)
{
point.Print();
Sleep(speed);
}
}
void StartInterface::PrintSecond()//蛇从左向右移动的过程
{
for (int i = 10; i != 40; ++i) //蛇头需要从10移动到40
{
/*计算蛇头的下一个位置,并将其压入startsnake中,绘制出来,将蛇尾去掉*/
int j = ( ((i-2)%8) < 4 )?( 15 + (i-2)%8 ) : ( 21 - (i-2)%8 );
startsnake.emplace_back( Point(i, j) );
startsnake.back().Print();
startsnake.front().Clear();
startsnake.pop_front();
Sleep(speed);
}
}
void StartInterface::PrintThird()//蛇从接触右边到消失的过程
{
while ( !startsnake.empty() || textsnake.back().GetX() < 33 ) //当蛇还没消失或文字没移动到指定位置
{
if ( !startsnake.empty() ) //如果蛇还没消失,继续移动
{
startsnake.front().Clear();
startsnake.pop_front();
}
ClearText();//清除已有文字
PrintText();//绘制更新位置后的文字
Sleep(speed);
}
}
void StartInterface::PrintText()
{
for (auto& point : textsnake)
{
if (point.GetX() >= 0)
point.Print();
}
}
void StartInterface::ClearText()
{
for (auto& point : textsnake) //清除的同时将文字整体向右移动一格
{
if (point.GetX() >= 0)
point.Clear();
point.ChangePosition(point.GetX() + 1, point.GetY());
}
}
void StartInterface::Action()
{
PrintFirst();
PrintSecond();
PrintThird();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化