鱼C论坛

 找回密码
 立即注册
查看: 5644|回复: 38

[原创] 自己用c++ 写的贪吃蛇(*^__^*) 嘻嘻……

[复制链接]
发表于 2014-3-17 15:00:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
不废话 先上图

可以选择速度

可以选择速度



游戏中

游戏中


源码




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-17 15:01:56 | 显示全部楼层
怎么发上去 再来一次吧

snake.zip

2.44 KB, 下载次数: 212

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-17 15:22:45 | 显示全部楼层
...  还差个东西 在发上

贪吃蛇.rar

155.06 KB, 下载次数: 180

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-17 15:50:17 | 显示全部楼层
我是VIP,我骄傲!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-17 15:52:53 | 显示全部楼层
看了楼主,引起共鸣,贡献一下我的贪吃蛇代码,大神勿喷



#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<time.h>


//蛇
struct snake
{

        int x;
        int y;

}sna[100];

int len=2;     //蛇长

//绘制地图
int map[15][15]={0};

void gameover(int a,int b);//-----------------------------------------------------

//食物生成
void food()
{
        int x,y;

        while(1)
        {
            x=rand()%14+0;
            y=rand()%14+0;

                if(map[x][y]==0)
                {
                        map[x][y]=19;
                        break;
                }
        }
}

//初始化
void beg()
{
        //食物初始化
        food();
        //墙体初始化
        for(int i=0;i<15;i+=14)
                for(int j=0;j<15;j++)
                        map[i][j]=10;

        for(i=1;i<14;i++)
        {
                map[i][0]=10;
                map[i][14]=10;
        }
        //蛇体初始化
        map[1][2]=6;
        map[1][1]=6;

        sna[0].x=1;
        sna[0].y=2;
        sna[1].x=1;
        sna[1].y=1;
}

//地图物体绘制
void outmap()
{
        system("cls");

        for(int i=0;i<15;i++,printf("\n"))
                for(int j=0;j<15;j++)
               
                        if(map[i][j]==0)

                                printf("  ");

                        else if(map[i][j]==10)

                                printf("□");

                        else if(map[i][j]==6)

                                printf("○");

                        else if(map[i][j]==19)

                                printf("¤");
}

//蛇的移动
void move(int a,int b)
{
        gameover(a,b);

        if(map[sna[0].x+a][sna[0].y+b]==19)
        {
                map[sna[0].x+a][sna[0].y+b]=6;
                len++;
                food();
        }

        map[sna[len-1].x][sna[len-1].y]=0;

        for(int i=1;i<len;i++)
        {
                sna[len-i].x=sna[len-i-1].x;
                sna[len-i].y=sna[len-i-1].y;
        }

        map[sna[0].x+=a][sna[0].y+=b]=6;
        map[sna[len-1].x][sna[len-1].y]=6;
}

void gameover(int a,int b)
{
        if(map[sna[0].x+a][sna[0].y+b]==10 ||     //撞墙
                map[sna[0].x+a][sna[0].y+b]==6)       //撞自己
        {
                system("cls");
                printf("%s","you lose");
                exit(0);
        }
}

//开始界面
void title(char &c)
{
        printf("%s","welcome to snake game\n");
        printf("%s","a.开始游戏\n");
        printf("%s","b.退出游戏\n");

                char a=getch();

                switch(a)
                {
                case 'a':c='a';break;
                case 'b':exit(1);
                }
       
}

void main()
{
        char c='b';
        int a=0;
        int b=1;
        int begin,now;

        while(c!='a')
        {
            title(c);
                system("cls");
        }
        beg();

                while(1)
        {
                begin=clock();

                while(now=clock()-begin<500)
                {
                    if(kbhit())
                        {
                            c=getch();

                           if(c=='w')
                           {
                                    a=-1;
                                    b=0;
                           }
                           if(c=='s')
                           {
                                    a=1;
                                    b=0;
                           }
                           if(c=='a')
                           {
                                    a=0;
                                    b=-1;
                           }
                           if(c=='d')
                           {
                                    a=0;
                                    b=1;
                           }
                        }
                }
       

                        outmap();

                        move(a,b);
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-17 16:12:21 | 显示全部楼层
10%几率有1个鱼币的奖励,我来试试运气,嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-17 20:35:28 | 显示全部楼层
激动人心,无法言表!我只说两句……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-17 21:32:16 | 显示全部楼层
真是难得给力的帖子啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-18 11:33:24 | 显示全部楼层
好的,看看!厉害,!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-18 16:19:27 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-18 21:11:18 | 显示全部楼层

我原先也是想用一个二维数组做地图。结构体做蛇的。但是不知道为什么。在传送参数的时候老是出问题。
后来知道了个改变光标的api函数。然后。。。(省略五万字,其中的辛酸你可懂)现在还有个bug 就是在选择速度的时候没有检查。事后才发现的⊙﹏⊙b汗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-18 22:20:15 | 显示全部楼层
淡定,淡定,淡定……没兴趣。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-19 20:58:03 | 显示全部楼层
穆逸 发表于 2014-3-18 21:11
我原先也是想用一个二维数组做地图。结构体做蛇的。但是不知道为什么。在传送参数的时候老是出问题。
后 ...

写这东西真的要经历各种辛酸(我想应该和楼主的心情差不多吧)不过写出来了倍儿有成就感,现在在为新目标奋斗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-20 09:10:32 | 显示全部楼层
感觉不错,支持一下...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-20 12:16:40 | 显示全部楼层
试试运气,顺便学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-20 13:42:54 | 显示全部楼层
大哥,问一下,这个程序里面有很多库函数的应用。。你是怎么知道这些函数的用处的?是一个一个找的吗?还是有其它什么方法?我就是因为不了解这些函数,才觉得程序读起来费力。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-20 14:47:01 | 显示全部楼层
{:1_1:}我这水平中奖无数次,不差这一次!强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-17 08:16:24 | 显示全部楼层
小干 发表于 2014-3-20 13:42
大哥,问一下,这个程序里面有很多库函数的应用。。你是怎么知道这些函数的用处的?是一个一个找的吗?还是 ...

我是有这个用处时,就去查查看有没有这个api或者库函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-17 17:18:18 | 显示全部楼层
我是VIP,我骄傲!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-17 21:39:19 | 显示全部楼层
真是难得给力的帖子啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 00:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表