wai1216 发表于 2016-4-16 12:02:35

第八课作业 贪吃蛇简单思路

本帖最后由 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;
                }
      }      
}


walykyy 发表于 2016-4-17 08:59:26

好贴,帮顶
页: [1]
查看完整版本: 第八课作业 贪吃蛇简单思路