C++贪吃蛇从0到1--day2

解决展示的设计思路及代码(新人从0到1调试到运动正常大概需要1~2个小时,如果再带深究一些内容点,半天怎么都能完成的)

day2解决的问题:

  1. 蛇动起来。在控制台中,一个比较好的思路就是刷新控制台,然后输出结果。综合框架设计如下所示,分为清屏、输出、延时、处理四个步骤。清屏用window的是system(“cls”)linux下为system(“printf “\033c””),但是貌似会直接输出最终结果,输出上一节已经完成,延时有好几种实现方案,新手可以调用sleep(),我这里用的是clock(),处理则是上下左右的设定及移动,以及是否吃到了食物,以及如何更新。以下代码给出了整体思路以及abc的完整实现,d的实现比较复杂,单独来讲。
/*框架大致为:
a.清屏
b.输出
c.延时
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");//windows
		//system("printf \"\\033c\"");
		print_all(vvc);
		delay(500);
		/**重点,此处还缺少蛇移动的设计**/
		//移动完以后,更新首尾指针,特别是尾指针用来显示蛇是增长了还是没有增长。
		beg = snake.gethead();
		if (end != snake.gettail()) {
   
			vvc[end.first]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值