第八课作业 贪吃蛇简单思路
本帖最后由 wai1216 于 2016-4-16 12:04 编辑想了蛮久的,大概是昨天夜里一会儿,上午一两小时的样子按上下左右变从不同的图形思路:是通过ASCII来找出一些需要的符号,然后进行判断,如果上,怎么样。。
边框去掉了,是通过for打出来的,按空心菱形的思路最后一行打出'\n',但是存在四个边角符号的问题
下面是打印出有头部和尾巴的思路,申请4个连续的char空间。把头部,尾部的坐标放进去
这里将尾部的坐标放在了循环外面,然后进行判断,如果上,下,左,右。打印出尾巴下面有一个注释
#include <stdio.h>
main()
{
char c = {0};
char s = {0};
int i = 5, j = 5 ;
char t = 1;
*(s + 2) = i;
*(s + 3) = j;
while( t )
{
clrscr();
*(s + 0) = i;
*(s + 1) = j;
gotoxy(*(s + 0), *(s + 1));
printf("*");
gotoxy(*(s + 2), *(s + 3));
printf("*");
gotoxy(*(s + 0), *(s + 1));
*c = getch();
if(*c == 0x48)
{
j = j == 2? 24:j - 1;
*(s + 3) = j + 1;
if(*(s + 0) != *(s + 2)) /* 经过测试后,发现移动了上下,之后移动左右。尾巴不会动,添加了一个判断,下同*/
{
*(s + 2) = *(s + 0);
}
}
else if(*c == 0x50)
{
j = j == 24? 1:j + 1;
*(s + 3) = j - 1;
if(*(s + 0) != *(s + 2))
{
*(s + 2) = *(s + 0);
}
}
else if(*c == 0x4B)
{
i = i == 2? 68:i - 1;
*(s + 2) = i + 1;
if(*(s + 1) != *(s + 3))
{
*(s + 3) = *(s + 1);
}
}
else if(*c == 0x4D)
{
i = i == 68? 2:i + 1;
*(s + 2) = i - 1;
if(*(s + 1) != *(s + 3))
{
*(s + 3) = *(s + 1);
}
}
else if(*c == 0x30)
{
t = 0;
}
}
}
好贴,帮顶
页:
[1]