注册 登录
编程论坛 C++教室

贪吃蛇行走问题

正人君子 发布于 2013-06-18 21:25, 685 次点击
#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;
             }
         }
像先让蛇走起来结果往下走时出问题了,找不到问题,求高手回复

2 回复
#2
蛋蛋的忧桑2013-10-01 11:18
同求
#3
Hover_shang2013-10-10 11:43
我也遇到麻烦了,求助。谢谢!
1