| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 22171 人关注过本帖, 3 人收藏
标题:C日记~立标记~
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 90楼 xzlxzlxzl
可以啊~~~~~~~~~弄出效果就行了~拜谢啦~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-15 22:00
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 91楼 九转星河
可以了~自己用数组在一定数量里面做了一个~可以用链表优化~~~

因为这是部分游戏代码就不发不完整的了~加上游戏背景这个特效用了100行左右~~

PS:已经用链表优化成功~

[此贴子已经被作者于2017-5-16 03:42编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-16 00:31
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
以下是方块雨部分的代码~
由于这只是游戏中其中一小部分的代码~所以看上去很多内容是不完整的~~~

有兴趣可以看看~

程序代码:
void Del_Clum(PClum* p)
{
    PClum pt=(*p)->prior;

    pt->next=(*p)->next;

    if ((*p)->next!=NULL)
    (*p)->next->prior=pt;

    Free_Node((void** )p);
}

void Link_Clum(PClum p1,PClum p2)
{
    if (p1==NULL||p2==NULL)
        return ;

    p1->next=p2;
   p2->prior=p1;
}

void Show_Init_Map()    //初始特效设计
{
    COLORREF re_linecolor=getlinecolor(); 
    COLORREF bgcolor=TRANSPARENT;

    Game_Start=false;

    int widht=(BOX2_WIDTH)/(MAP_SIZE);    //Main盒子的宽
    int height=(BOX2_HEIGHT)/(MAP_SIZE);  //Main盒子的高

    int i=0;
    int j=0;
    int t=0;

    int show_Map[(BOX2_WIDTH)/(MAP_SIZE)*(BOX2_HEIGHT)/(MAP_SIZE)]={0};
    int temp_Map[(BOX2_WIDTH)/(MAP_SIZE)*(BOX2_HEIGHT)/(MAP_SIZE)]={0};
    
    int show_Map2[(BOX2_WIDTH)/(MAP_SIZE)*(BOX2_HEIGHT)/(MAP_SIZE)]={0};  //记录数据纵坐标

    Map_Data show[(BOX2_WIDTH)/(MAP_SIZE)*(BOX2_HEIGHT)/(MAP_SIZE)]={0};

    PClum head=NULL;  //头节点
    PClum end=NULL;   //尾节点

    for (i=0;i<widht*height;++i)
        temp_Map[i]=i;

    for (i=0,t=widht*height;i<widht*height;i++,t--)       //生成方块数量的随机数
    {
        int s=rand()%t;

        show_Map[i]=temp_Map[s];    
        show_Map[i]%=widht;                      

        for (j=s;j<t-1;++j)
            temp_Map[j]=temp_Map[j+1];
    }

    setlinecolor(bgcolor);

    Creat_Node((void** )&head,sizeof(Clum));  //创建头节点

    Creat_Node((void** )&end,sizeof(Clum));  //创建尾节点
    Link_Clum(head,end);

    for (t=0;t<widht*height;++t)  //初始化方块数据
    {
        show[t].color=Map[widht-show_Map2[show_Map[t]]++-1][show_Map[t]].color;  //获取初始化方块颜色
        show[t].x=show_Map[t];                                                   //获取方块下落的横坐标
    }

    memset(show_Map2,0,sizeof(show_Map2));  //重置数组

    for (t=0;t<widht*height;++t)
    {
        PClum pclum=end->prior;
        PClum pt=NULL;
        PClum ps=head;

        Creat_Node((void** )&pt,sizeof(Clum));

        pt->map_data=show[t];

        Link_Clum(pclum,pt);  //链接两个节点
        Link_Clum(pt,end);

        BeginBatchDraw();

        while ((ps=ps->next)&&(ps!=end))
        {
            int left=Box_Main.point.left+ps->map_data.x*MAP_SIZE;    //获取方块的顶点信息
            int top=Box_Main.point.top+ps->map_data.y*MAP_SIZE;
            int right=left+MAP_SIZE;
               int bottom=top+MAP_SIZE;
    
               if (ps->map_data.y>0)  
            {
                setfillcolor(bgcolor);
                   fillrectangle(left,top-MAP_SIZE,right,bottom-MAP_SIZE);
            }

               setfillcolor(ps->map_data.color);       //设置方块颜色

               fillrectangle(left,top,right,bottom);   //填充方块颜色

                Draw_Line_Rectangle  //绘制边框信息
                (
                 Box_Main.point.left,
                 Box_Main.point.top,
                 Box_Main.point.left+Box_Main.width,
                 Box_Main.point.top+Box_Main.height,
                 Box_Main.color.line_color,
                 bgcolor
               );

             if (ps->map_data.y<widht-show_Map2[ps->map_data.x]-1)
                   ++ps->map_data.y;
             else
             {
                 show_Map2[ps->map_data.x]++;
                 PClum pt=ps->prior;

                 Del_Clum(&ps);

                 ps=pt;
             }
        }

        EndBatchDraw();        //结束批量绘图
     
        Sleep(FALL_TIME);   //缓冲时间
    }

    Free_Node((void** )&head);  //释放头节点
    Free_Node((void** )&end);    //释放尾节点

    Data.timer.TIME_START=clock();         //游戏时间重新开始

    FlushMouseMsgBuffer();       //清理鼠标缓冲区
}

PS:怎么会发来这里了~在那个百分贴再发多一遍~

[此贴子已经被作者于2017-5-16 03:53编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-16 03:45
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
突然看到了还有键树这个数据结构~原来快速查找匹配字符串还可以用键树这种数据结构(其实之前我也想到了这种结构了~不过我却把它归类在B树里面~又长见识了)~~~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-17 22:17
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
最近编程任务较多~可以试试在完成一个任务的时候思考另外一个任务的结构框架以及执行流程~~最近很久没有操文件了~不过感觉文件学得好的话也是很有趣的~打算有时间试试弄弄文件的基本操作~毕竟这方面太没弄了~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-19 07:05
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
很佩服长期几乎每天回帖的人~编程任务太多太多~抽个空上来认真看其中一个贴都没啥时间了~毕竟最近看的都是大家伙~不是三下五除二就能解决的那种~~~还要看选修~最重要当时是睡觉咯~曾经试过看东西看到一半就在电脑台前面睡着了~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-20 18:25
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
看来编程最近要暂停一下了~思维太乱~先好好消化一段时间再敲代码~不然要炸天了~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-21 15:19
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
消灭星星代码数目似乎没法直接统计~因为已经分块了多个头文件~加了个通用链表后~初步估计有1700行左右~接下来打算把寻找方块信息的dfs算法改成bfs算法~~接下来就要写消除和下落部分了~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-22 21:42
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
看看对指针的理解怎么样~
int (*((*p)()))[]=NULL;

有谁可以说说这个数据类型的意思么?~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-23 14:20
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
随手写了一段代码~其实也没什么~发来看看~

程序代码:
int main()
{
    int a[3][3]={{10,20,30},{40,50,60},{70,80,90}};
    char b[3][3]={{'a','b','c'},{'d','e','f'},{'h','i','j'}};
    void* (*p[2])[3]={0};

    int i=0;
    int j=0;
    
    (int (*)[3])p[0]=(int (*)[3])a;
    (char (*)[3])p[1]=(char (*)[3])b;

    for (i=0;i<sizeof(**p)/sizeof(*p);++i)
        for (j=0;j<sizeof(**p)/sizeof(***p);++j)
            printf("%-4d%-4c\n",((int (*)[3])p[0])[j][i],((char (*)[3])p[1])[j][i]);

    return 0;
}


这表明强制转型对获取数据的方式式有影响的~~~

[此贴子已经被作者于2017-5-23 16:54编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-23 16:35
快速回复:C日记~立标记~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064298 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved