| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4229 人关注过本帖, 2 人收藏
标题:求助!!!
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
界面是interface,不能简单化地混淆成GUI。

授人以渔,不授人以鱼。
2012-05-15 13:30
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 40楼 有容就大
最开始都是一个人做,全班每个人都要单独完成这个项目,包括女生在内。
然后是大家把自己的棋子算法,界面想法,音乐之类的集合在一起,做一个小组项目,一个小组就5个人左右。
一步一步来吧,这个项目用C++或是C#来写会很自然的,但目前你没有一些面象对象的思想形成,所以还是先把C基础打牢了。

偶的一篇日志,虽然没有写完,但阐述了一些关于如何面象对象程序分析的基本方法:https://hi.bccn.net/space-383031-do-blog-id-34546.html

我们都在路上。。。。。
2012-05-15 13:32
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 42楼 hellovfp
貌似只写了个开头啊 有空再写些内容吗 把你们做这个项目的经验介绍下 好借鉴哪
C++的类中是不是包含了很多函数 然后要用某个函数的功能就去找相应的类来调用?
我用C 的.h + .cpp 也能把许多具有相似性能的函数集合在一起 然后调用头文件就可以随时使用其中的函数功能了吧

[ 本帖最后由 有容就大 于 2012-5-15 13:52 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-15 13:48
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 43楼 有容就大
这篇本来是为小鱼兄弟准备的,目的是打开他的面象对象思维,不过小鱼兄C++那时还没有怎么入门+偶的U盘出了点问题,写好的代码丢了,所以没有写下去了。
如果在C里面实现这个项目,其实还是不难的,如文章中所述,C中的对象可以用struct,它也可以和C++/C#/Java类一样带方法(函数)的,不过你的指针掌握如何?
对于函数指针有否掌握?函数的封装(或称之为模块化)有否掌握?这些都直接影响着你写这个程序的思维。

我们都在路上。。。。。
2012-05-15 14:06
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
这里有个例子,关于Edit控件的,先理解一下结构带函数的方法:
#include <windows.h>

//别名
typedef struct ctl_edit *cEdit;
//函数指针
typedef void(*p1)(void);
typedef void(*p2)(cEdit);

typedef struct ctl_edit
{
    HWND hwnd;
    p2 copy;
    p2 cut;
    p2 paste;
    p2 clear;
}Edit;

void    edit_init(cEdit _edit);
void    edit_do_copy(cEdit _edit);
void    edit_do_cut(cEdit _edit);
void    edit_do_paste(cEdit _edit);
void    edit_do_clear(cEdit _edit);

void edit_init(cEdit _edit)
{
    _edit->copy        = edit_do_copy;
    _edit->cut        = edit_do_cut;
    _edit->paste    = edit_do_paste;
    _edit->clear    = edit_do_clear;
}

void edit_create(cEdit _edit)
{
    int _style = WS_CHILD | WS_VISIBLE;
    _edit->hwnd = CreateWindowEx(dwExStyle,
        _T("Edit"),
        "",
        _style | style,
        0, 0, 0, 0,
        hwndParent,
        (HMENU) ctl_id,
        hInstance,
        0);
    if(_edit->hwnd)
        edit_init(_edit);
}

void edit_do_copy(cEdit _edit)
{
    SendMessage(_edit->hwnd, WM_COPY, 0, 0);
}

void edit_do_cut(cEdit _edit)
{
    SendMessage(_edit->hwnd, WM_CUT, 0, 0);
}

void edit_do_paste(cEdit _edit)
{
    SendMessage(_edit->hwnd, WM_PASTE, 0, 0);
}

void edit_do_clear(cEdit _edit)
{
    SendMessage(_edit->hwnd, WM_CLEAR, 0, 0);
}

我们都在路上。。。。。
2012-05-15 14:30
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
这段例子还包括了一个思想:接口思想,
   p2 copy;
    p2 cut;
    p2 paste;
    p2 clear;
全部是接口, 意味着实现是可以改变的,换句话说:void edit_do_clear(cEdit _edit)这此是可以改变的,包括定义和内部实现,比如改成void edit_clear_text(cEdit _edit),
如果你能体会到这种编程的思想,表示你离你的象棋程序又进了一步。

我们都在路上。。。。。
2012-05-15 14:36
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
嗯 好好琢磨下

梅尚程荀
马谭杨奚







                                                       
2012-05-15 14:58
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 27楼 hellovfp
一直没找到合适的图片。这套不错

重剑无锋,大巧不工
2012-05-15 21:20
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:11 
见证有容的一步步成长啊,我这种电子类学生就只能看你们在这里进步了!

最基础的往往是你最容易忽略的!
2012-05-15 21:59
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
现在稍微有点眉目了 关键是搞清楚下面这些东西的关系
一个合适的窗口大小 棋盘总的大小 棋盘边框大小 棋格大小 棋子大小
一个棋盘初始化数组
创建的窗口上鼠标的点击位置 x y 坐标对应的棋盘数组的值 (五星级重要)
LoadImage(... IMAGE_BITMAP, ....)
还有一个关键的地方是画透明图 将棋子bmp图的四个角变成透明的 (四星级重要)
Hellovfp大哥给的素材的棋子背景是白色的 也一样要动下手术吧 白色和透明还是不一样

一个棋局struct {  (四星级)
   ....
   ....
   ....
}***;
一个界面变量struct (四星级)
{
   ....
   ....
   ....
}***;


[ 本帖最后由 有容就大 于 2012-5-15 23:03 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-15 22:59
快速回复:求助!!!
数据加载中...
 
   



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

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