贪吃蛇(C++)

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>

using namespace std;
//光标移动
void go(short y,short x)

    COORD pos = {x, y};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}

struct aa {
    
    int x, y;
    
}s[1000],shiwu;

int ss,len;

int mp[55][55];

void chushi() 
{
    srand((unsigned)time(NULL));//随机 
    
    while(1) 
    {
        shiwu.x=rand()%50,shiwu.y=rand()%50;
        
        if(shiwu.x>0&&shiwu.y>0&&mp[shiwu.x][shiwu.y]==0)
        { 
            break;
        } 
    }
    
    go(shiwu.x,shiwu.y);
    
    printf("@");
    
    go(50+1,0);
}

void shu1() 
{
    system("cls");//任意键输入
    
    for(int i=0;i<=50;i++)//画图(可修改长宽,但是需要找到所有的循环,修改边界值)
    { 
        for(int j=0;j<=50;j++) 
        {
            if(i==0||j==0||i==50||j==50)
            {
                mp[i][j]=1;
                
                printf("#");
            }
            else 
            {
                mp[i][j]=0;
                
                printf(" ");
            }
        }
        
        cout<<"\n";
    }

    len=2;//初始化蛇的长度 
    
    ss=0;
    
    s[1].x=12,s[1].y=4;
    
    s[len].x=12,s[len].y=3;
    
    mp[s[1].x][s[1].y]=mp[s[len].x][s[len].y]=1;
    
    go(s[1].x,s[1].y);
    printf("*");
    
    go(s[len].x,s[len].y);
    printf("*");
    
    go(50+1,0);

    chushi();
}

int yidong() 
{
    aa kk=s[1];
    
    switch(ss) 
    {
        case 0:
            kk.y++;
            break;
            
        case 1:
            kk.x--;
            break;
            
        case 2:
            kk.y--;
            break;
            
        case 3:
            kk.x++;
            break;
    }
    
    
    if(mp[kk.x][kk.y])
    {
        return 0;//输了 
    }
    
    if(kk.x==shiwu.x&&kk.y==shiwu.y) //碰到食物 
    {
        len++;
        
        chushi();
    } 
    else
    { 
        go(s[len].x,s[len].y);
        printf(" ");
        
        mp[s[len].x][s[len].y]=0;
    }

    go(kk.x,kk.y);
    printf("*");
    
    go(50+1,0);
    
    mp[kk.x][kk.y]=1;
    
    for(int i=len;i>1;i--)
    {
        s[i]=s[i-1];
    }
    
    s[1]=kk;
///
    Sleep(100);//修改速度在这里
//
    return 1;
}

void shibai() 
{
    for(int i=1;i<=3;i++) 
    {
        go(s[1].x,s[1].y);
        printf(" ");
        
        Sleep(300);
        
        go(s[1].x,s[1].y);
        printf("*");
        
        Sleep(300);
    }
    
    go(50+1,0);
    
    printf("QAQ QAQ QAQ QAQ\n");
    printf("continue...");
}

void ru() 
{
    printf("wasd控制方向\n");
    printf("\n任意键进入贪吃蛇...");
    
    getch();
}

int main() 
{
    ru();
    shu1();
    
    while(1) 
    {
        if(kbhit()) 
        {
            char S=getch();
            
            int TP=ss;
            
            switch (S) 
            {
                case 'd':
                    TP=0;
                    break;
                    
                case 'w':
                    TP=1;
                    break;
                    
                case 'a':
                    TP=2;
                    break;
                    
                case 's':
                    TP=3;
                    break;
            }
            
            if((TP+ss)%2==1)
            {
                ss=TP;
            }
        }
        
        if(yidong()==0) 
        {
            shibai();
            
            getch();
            
            shu1();
        }
    }
    
    return 0;
}
 

实现移动,吃食变长游戏把子上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴,等到了一定的分数,就能过关,然后继续玩下一关。[3] 二、“贪吃蛇”游戏的发展编辑 改变此款游戏的特别多。比如在蛋的方面,可能放上带道具的蛋,使蛇吃完后具有保护,穿墙等特种功能,而且难度逐渐变难,游戏制作的精细度和画面的质量也随着版本的提高而不断提高,且有单人及团队联机对战版本陆续推出。 参考资料游戏把子上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴,等到了一定的分数,就能过关,然后继续玩下一关。[3] 二、“贪吃蛇”游戏的发展编辑 改变此款游戏的特别多。比如在蛋的方面,可能放上带道具的蛋,使蛇吃完后具有保护,穿墙等特种功能,而且难度逐渐变难,游戏制作的精细度和画面的质量也随着版本的提高而不断提高,且有单人及团队联机对战版本陆续推出。 游戏把子上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴,等到了一定的分数,就能过关,然后继续玩下一关。[3] 二、“贪吃蛇”游戏的发展编辑 改变此款游戏的特别多。比如在蛋的方面,可能放上带道具的蛋,使蛇吃完后具有保护,穿墙等特种功能,而且难度逐渐变难,游戏制作的精细度和画面的质量也随着版本的提高而不断提高,且有单人及团队联机对战版本陆续推出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值