zoukankan      html  css  js  c++  java
  • C++ MFC棋牌类小游戏day2

    反思了一下昨天的设计,觉得略有不足,我决定把棋盘做成单例模式。这样的话需要重新设计棋盘类,emmm,是新建棋盘类。

    Baord类

    成员变量:

    Location  coordinate;//棋子坐标

    bool isHavePiece;//记录是否有棋子

    CRect rect;//备用

    vector<Loaction> all_Board;//整个棋盘

    方法:

    int  Coordinate_Px(Location  loc,CRect &rect);

    int  Px_Coordinate(CRect rect,Location  &loc);

    先这样吧,不够再加

     这样的话,棋子应该也需要重新设计一下

    PaintPiece方法只负责话棋子,位置通过棋盘类中的Px_Coordinate转换

    嗯。。。。。今天留下了一堆问题,明天有时间的话去解决

    1.Tiger棋子画失败,应该是View的OnSize传的cx和cy的问题

    2.搞清楚cx和cy的值是什么

    3.嗯。。。我的逻辑应该没问题

    链接:https://pan.baidu.com/s/1UlTCEDepaOPHVtynxGbtmQ 密码:t3nw

     找到上面的问题了

    1.问题一出在OnSize这边,传输的cx和cy都是0

    在网上搜了一下,好像也有网友遇到过这个情况,看到过一位博主提到重绘,待会试一下,现在我是通过OnPaint传的值

    试过Invalidate(),并没什么用,以后再查一下

    2.问题二在画棋子时候我resize了vector的大小,导致前两个空间已经存了0,注释掉即可

     有发现一个大bug,棋子位置不随着窗口大小改变,本来是以为OnSize和Onpaint的问题,通过调试发现是tiger和board里面的vector没有清除,导致内部数据无限累加,使用ersase(beg,end)清理一遍就ok了。

    需要添加free board类的释放方法。

        

  • 相关阅读:
    算法导论之贪心算法
    编程过程中遇到的一些细节
    c++11和c99
    面试总结(YY一面)
    python(17):字典
    python(16):元组
    python(15):练习题
    python(14):列表
    python(13):字符串
    python(12):练习题
  • 原文地址:https://www.cnblogs.com/smh2015/p/9682788.html
Copyright © 2011-2022 走看看