根据他的头部动作不能删除蛇的尾巴

时间:2014-12-03 19:19:36

标签: c visual-studio-2013 position coordinates

编辑#1。
现在我看到我的功能不适用于这个游戏所以请忘记它们 仍然没有找到解决方案,看到有关Queue的一些文档如fjf2002所述,但对于我来说这对我来说太复杂了。试图使一个蛇[20]数组存储坐标2乘{1,1,1,2}将是:头(1,1)尾(1,2)在地图上。仍然无法想象如何在地图上移动它并使尾部跟随头部。在尝试了所有事情后,我的思绪一片空白,并且由于缺乏经验而感到沮丧。我不允许使用超出二维数组的任何东西。这意味着没有结构,没有队列,没有堆栈......这应该是在不使用它们的情况下完成的,并且profesor说这比我想象的要容易得多。 (不要发帖说我应该问他解决方案,因为他一直在说同样的问题而不回答我的问题)。任何想法都会对我有所帮助......
------------------------------------- -------------------------------------------------- --------------------------------------------- 即时通讯使用VisualStudio 2013和C语言编程。

在过去的两天里一直在寻找一个解决方案,并没有在互联网上找到任何帮助我。看到几十种不同的英语和西班牙语蛇游戏,但由于他们的程序没有解释或者由于我缺乏经验,我无法理解它们。

我的所有知识都没有成功,但我无法自己提出解决方案。

我有:

- 功能生成地图 - 功能移动蛇:

COORD cxy;
#define posicion(x,y) {(cxy.X)= (x);(cxy.Y)= (y); SetConsoleCursorPosition((GetStdHandle(STD_OUTPUT_HANDLE)), (cxy) );}

int tablero[20][20], posx = 0, posy = 0;

void movimientoSnake(){
    int m = 1, k = 0, tail = 3;
    char dir = 'd';

    do{

        if (kbhit()){
            dir = getch();

            if (dir == 'w'){
                m = 0;
                k = -1;
            }
            if(dir == 's'){
                m = 0;
                k = 1;
            }
            if (dir == 'a'){
                m = -1;
                k = 0;

            }
            if (dir == 'd'){
                m = 1;
                k = 0;
            }
        }
        else{

            Sleep(500);

            posicion(posx += m, posy += k);
            printf("%d", 1);
            posicion(posx - tail, posy);
            printf("%d", 0);

        }

    } while (2 > 1);

*蛇根据按键移动正常,并留下一条带有1的小径(地图满是0' s)。 *它根据位置移动:地图的位置(x,y)(在那里移动)printf("%d",1); (打印1)。例如

主要问题是,当我向下移动时,我想要删除路径,删除最后一个位置,同时我在前面打印新的位置。

如果可能的话,我想要一个没有太多复杂的解决方案(使用太多的库),因为现在我只知道:

#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>

我尝试在阵列上存储坐标,就像我在那里看到的近90%的蛇游戏一样,但我不理解这个概念,所以我最终尝试了一堆没有成功。

有什么想法吗? 非常感谢你提前。

1 个答案:

答案 0 :(得分:1)

所以让我们总结一下:

  1. 只知道蛇头的坐标,如何确定尾巴的坐标?
  2. 由于蛇可能有几圈,所以没有直接的方法。
  3.   

    我尝试在阵列上存储坐标,正如我在近90%的蛇游戏中看到的那样

    似乎是唯一的解决方案。

      

    但我不明白这个概念