关于c++实现贪吃蛇的问题,求大佬帮助
就是在转弯的时候,那个蛇头蛇尾的坐标是怎么样的呢?我这个值能向保证蛇在同一行或者同一列中实现,如果不在同一行或者同一列就会出现问题int direction; //控制蛇身的方向,初始化向右
direction = 77;
while(1){
int xHead,yHead; //新的头坐标
int xTail,yTail; //新的尾坐标
long start;
_getch();
direction=_getch();
switch(direction){
case(77): //向右
if(xtail=xhead){
xHead=xhead;yHead=yhead+1;
xTail=xtail;yTail=ytail+1;
}
else{}
break;
case(72):xHead=xhead-1;yHead=yhead; //向上
xTail=xtail-1;yTail=ytail;
break;
case(75):xHead=xhead;yHead=yhead-1; //向左
xTail=xtail;yTail=ytail-1;
break;
case(80):xHead=xhead+1;yHead=yhead; //向下
xTail=xtail+1;yTail=ytail;
}
if(xHead==x1&&yHead==y1){ //吃米长度加1
chessBoard='*';
chessBoard='#';
xhead=xHead;
yhead=yHead;
xtail=xTail;
ytail=yTail;
x1=rand()%40+1; //重新产生*
y1=rand()%20+1;
chessBoard='*';
showChessBoard(chessBoard);
}
else{ //不吃米
chessBoard='*';
chessBoard='#';
chessBoard=' ';
xhead=xHead;
yhead=yHead;
xtail=xTail;
ytail=yTail;
showChessBoard(chessBoard);
}
} 虽然只给了代码片段,然后 x 和 y 好像跟传统坐标轴是相反的(x 不是应该管左右,y 管上下?)……
不过我可以提供一下大概思路:组成贪食蛇的每个节点应该是一个对象,该对象具有方向性,即每个点有起独立的控制方向的属性。触发贪食蛇转弯的时候,先记录当时蛇头的位置,当每个节点抵达该位置时,修改该节点的方向属性。 哇⊙ω⊙! 这就是C++的语法格式看起来比C复杂一点点 小甲鱼 发表于 2017-7-25 23:38
虽然只给了代码片段,然后 x 和 y 好像跟传统坐标轴是相反的(x 不是应该管左右,y 管上下?)……
不过 ...
这个这个,为啥x管左右y管上下呢?
是用x记录横坐标y记录纵坐标啊
页:
[1]