基于MFC的五子棋应用(一)

基于MFC的五子棋应用(一)

 前些日子,参加了学校里一个实验室的面试,面试过程实在糟心,老师提出现场写一个五子棋的算法,然而过于紧张,伪代码都写得并不顺利。
 总而言之,言而总之,面试结果虽然不尽如人意,但最后布置了一道基于MFC的五子棋实现,终是能一展拳脚。
 故以编程日记,记之。

1.分析

 首先是对整个程序的分析:五子棋,作为最基础的交互型游戏规则简单,游戏的主体主要分为三个部分:1.视图资源 2.规则 3.交互

1.1 视图

五子棋的规则很简单:判断当前位置能否落子
                判断当前执子颜色
                判断是否五子连珠

1.2 环境

本例采用VC++6.0实现
建立文件 MFC AppWizard[exe]  单文档

1.3 资源编辑

黑白位图Bitmap以表示棋盘上面的棋子:
        IDB_BLACK  
        IDB_WHITE
黑白鼠标Cursor以替换当前鼠标:
        IDC_CURSOR1     黑棋子
        IDC_CURSOR2     白棋子

黑白图标Icon以显示在状态栏供以提示:
        IDI_BLACK
        IDI_WHITE

菜单以供操作:
        VS 人:ID_PLAYER
        VS AI:ID_COMPUTER
        保存:ID_SAVE
        载入:ID_OPEN
        退出:ID_APP_EXIT

菜单
具体表现为下图:资源编辑

1.4 变量函数定义

为了实现状态栏的显示,修改MainFrm.h中 
CStatusBar  m_wndStatusBar 为public访问
在***View.h中添加变量
    //保存棋谱
    void OnSave();
    //载入棋谱
    void OnOpen();

    //悔棋坐标
    int bprex,bprey;
    int wprex,wprey;
    int Regretpoint;

     //检查是否结束
    void over(CPoint point);

     //两个鼠标
    HCURSOR hcursorwhite;
    HCURSOR hcursorblack;

    //棋盘数组
    int wzq[19][19];

    // colorwhite TRUE时白棋下,否则黑棋下
    bool colorwhite;

    //棋子位图
    CBitmap m_bmblack;
    //AI
    //保存计算机落子时白棋位置
    CPoint vspoint;
    int vscomputer;     //vscomputer=1 为人机对战  2为人人

(AI部分 之后的文章进行介绍 先针对人人对战惊醒解释这一方面比较简单)

protec
  • 11
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值