穆逸 发表于 2014-3-17 15:00:30

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

不废话 先上图






源码




穆逸 发表于 2014-3-17 15:01:56

怎么发上去 再来一次吧

穆逸 发表于 2014-3-17 15:22:45

...还差个东西 在发上

wosibingo 发表于 2014-3-17 15:50:17

我是VIP,我骄傲!

wosibingo 发表于 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;

int len=2;   //蛇长

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

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

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

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

                if(map==0)
                {
                        map=19;
                        break;
                }
        }
}

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

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

        sna.x=1;
        sna.y=2;
        sna.x=1;
        sna.y=1;
}

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

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

                                printf("");

                        else if(map==10)

                                printf("□");

                        else if(map==6)

                                printf("○");

                        else if(map==19)

                                printf("¤");
}

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

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

        map.x].y]=0;

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

        map.x+=a].y+=b]=6;
        map.x].y]=6;
}

void gameover(int a,int b)
{
        if(map.x+a].y+b]==10 ||   //撞墙
                map.x+a].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);
        }
}

Diu 发表于 2014-3-17 16:12:21

10%几率有1个鱼币的奖励,我来试试运气,嘿嘿

cqxcool 发表于 2014-3-17 20:35:28

激动人心,无法言表!我只说两句……

星之陨 发表于 2014-3-17 21:32:16

真是难得给力的帖子啊。

swsm 发表于 2014-3-18 11:33:24

好的,看看!厉害,!

未闻丶花名 发表于 2014-3-18 16:19:27

楼主加油,鱼C加油!我们都看好你哦!

穆逸 发表于 2014-3-18 21:11:18

wosibingo 发表于 2014-3-17 15:52 static/image/common/back.gif
看了楼主,引起共鸣,贡献一下我的贪吃蛇代码,大神勿喷




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

爻之 发表于 2014-3-18 22:20:15

淡定,淡定,淡定……没兴趣。

wosibingo 发表于 2014-3-19 20:58:03

穆逸 发表于 2014-3-18 21:11 static/image/common/back.gif
我原先也是想用一个二维数组做地图。结构体做蛇的。但是不知道为什么。在传送参数的时候老是出问题。
后 ...

写这东西真的要经历各种辛酸(我想应该和楼主的心情差不多吧)不过写出来了倍儿有成就感,现在在为新目标奋斗

猪不是这样爱 发表于 2014-3-20 09:10:32

感觉不错,支持一下...

j_t_zeng 发表于 2014-3-20 12:16:40

试试运气,顺便学习学习

小干 发表于 2014-3-20 13:42:54

大哥,问一下,这个程序里面有很多库函数的应用。。你是怎么知道这些函数的用处的?是一个一个找的吗?还是有其它什么方法?我就是因为不了解这些函数,才觉得程序读起来费力。。

syhhl 发表于 2014-3-20 14:47:01

{:1_1:}我这水平中奖无数次,不差这一次!强烈支持楼主ing……

穆逸 发表于 2014-4-17 08:16:24

小干 发表于 2014-3-20 13:42 static/image/common/back.gif
大哥,问一下,这个程序里面有很多库函数的应用。。你是怎么知道这些函数的用处的?是一个一个找的吗?还是 ...

我是有这个用处时,就去查查看有没有这个api或者库函数

墨语 发表于 2014-4-17 17:18:18

我是VIP,我骄傲!

LINKG 发表于 2014-4-17 21:39:19

真是难得给力的帖子啊。
页: [1] 2
查看完整版本: 自己用c++ 写的贪吃蛇(*^__^*) 嘻嘻……