用纯数组和循环加条件实现蛇形移动,...不能吃豆子的贪吃蛇,

虽然还有很多问题没有解决,但是对我来说这是一次成功!忘了写注释了...

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#define N 23
#define M 80
main()
{
int a[N][M];
int i, j, x, y,q,k,u,p,t,e;
char c;
    x=10;
    y=2;
q=x;
k=y-1;
u=x;
p=y-2;
    while(1)
    { 
        system("cls");
        for(i = 0; i <N ; i++)
        {
            for(j = 0; j <M ; j++)
            {
                a[i][j]=0;
            }
        }
         a[x][y]=1;
         a[q][k]=2;
a[u][p]=2;
        for(i = 0; i < N; i++)
        {
            for(j = 0; j < M; j++)


            {
                if(i==0||j==79||j==0||i==22)
                printf("-");
else if(a[i][j]==0)
printf(" ");
                if(a[i][j]==1||a[i][j]==2)
                    printf("*");
            }
            printf("\n");
        }
c=getch();
if(c=='w')
            {   
if(k==t&&q>x)
{
q-=1;
}
if(p==t&&u>q)
{
u-=1;
}                 
x=x-1;
t=y;
if(k<t)
{k+=1;
}
else if(k>t)
{
k-=1;
}
if(p<t)
{
p+=1;
}
else if(p>t)
{
p-=1;
}
  if(x==0)
  {
  printf("游戏结束\n");
  Sleep(1000);
  break;}
            
}
            else 

if(c=='a')
            {   
   if(k>=t&&q>x)
{
q-=1;
}
else if(k>=t&&q<x)
{
q+=1;
}
if(q==x&&k>y)
{ k-=1;
}
if(p>=k&&u>q)
{
u-=1;
}
else if(p>=k&&u<q)
{
u+=1;
}
if(u==x&&p>k)
{


p-=1;
}
else if(u!=x&&p<k)
{
p+=1;
}
t=y;
y=y-1;


if(y==0)
  {
  printf("游戏结束\n");
  Sleep(1000);
  break;
}
            }

else 
if(c=='s')
{
if(k==t&&q<x)
{
q+=1;
}
if(p==t&&u<q)
{
u+=1;
}
x=x+1;
t=y;
if(k<t)
{
k+=1;
}
else if(k>t)
{
k-=1;
}
if(p<k)
{
p+=1;
}
else if(p>k)
{
p+=1;
}
if(x==22)
  {
  printf("游戏结束\n");
  Sleep(1000);
  break;
}
}

else  
if(c=='d')
{
if(k<=t&&q>x)
{
q-=1;
}
else if(k<=t&&q<x)
{
q+=1;
}
else if(q==x&&k<y)
{
k+=1;
}
if(p<=k&&u>x)
{
u-=1;
}
else if(p<=k&&u<x)
{
u+=1;
}


else if(u==q&&p<k)
{
p+=1;
}

                    t=y;
y=y+1;
  if(y==79)
  {
  printf("游戏结束\n");
  Sleep(1000);
  break;}
           

}
        if(c=='t') break;
 
       Sleep(500);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值