贪吃蛇行走问题
#include <windows.h> #include <iostream>
#include<conio.h>
using namespace std;
int touhang=5,toulie=4,mohang=5,molie=0,weizhi[20][50];
void move(char ch);
int main()
{
char ch='d';
int i=0,j=0,k=0;
for(i=0;i<20;i++)
for(j=0;j<50;j++)
weizhi[i][j]=0;
for(j=0;j<5;j++)
weizhi[5][j]=1;
weizhi[5][4]=2;//对数组赋值
for(;;)
{
for(i=0;i<20;i++)
{
for(j=0;j<50;j++)
{
if(weizhi[i][j]==0)
cout<<" ";
if(weizhi[i][j]==2)
cout<<"#"; //蛇头
if(weizhi[i][j]==1)
cout<<"*";
}
cout<<endl;
}
move(ch);
if(kbhit())
{
ch=getch();
move(ch);
}
Sleep(100);
system("CLS");
}
return 0;
}
void move(char ch)
{
if(ch=='a')
{
if(toulie<49)
{ weizhi[touhang][toulie-1]=2;
weizhi[touhang][toulie]=1;
toulie=toulie-1; //对头的操作
weizhi[mohang][molie]=0;
if(weizhi[mohang][molie-1]==1)
molie=molie-1;
if(weizhi[mohang][molie+1]==1)
molie=molie+1;
if(weizhi[mohang-1][molie]==1)
mohang=mohang-1;
if(weizhi[mohang+1][molie]==1)
mohang=mohang+1; //对尾巴的操作
}
}
if(ch=='d')
{
if(toulie<49)
{ weizhi[touhang][toulie+1]=2;
weizhi[touhang][toulie]=1;
toulie=toulie+1;
weizhi[mohang][molie]=0;
if(weizhi[mohang][molie-1]==1)
molie=molie-1;
if(weizhi[mohang][molie+1]==1)
molie=molie+1;
if(weizhi[mohang-1][molie]==1)
mohang=mohang-1;
if(weizhi[mohang+1][molie]==1)
mohang=mohang+1;
}
}
if(ch=='w')
{
weizhi[touhang-1][toulie]=2;
weizhi[touhang][toulie]=1;
touhang=touhang-1;
weizhi[mohang][molie]=0;
if(weizhi[mohang][molie-1]==1)
molie=molie-1;
if(weizhi[mohang][molie+1]==1)
molie=molie+1;
if(weizhi[mohang-1][molie]==1)
mohang=mohang-1;
if(weizhi[mohang+1][molie]==1)
mohang=mohang+1;
}
if(ch=='s')
{ weizhi[touhang+1][toulie]=2;
weizhi[touhang][toulie]=1;
touhang=touhang+1;
weizhi[mohang][molie]=0;
if(weizhi[mohang][molie-1]==1)
molie=molie-1;
if(weizhi[mohang][molie+1]==1)
molie=molie+1;
if(weizhi[mohang-1][molie]==1)
mohang=mohang-1;
if(weizhi[mohang+1][molie]==1)
mohang=mohang+1;
}
}
像先让蛇走起来结果往下走时出问题了,找不到问题,求高手回复