难度:⭐
——已更新 !!!——
思路:1.绘制图像(O,X,#)
2.判断胜负规则
3.检测点击,并且在相应位置进行绘画
- 代码:
- 窗口句柄
- 窗口渲染缓冲区
- 动态延时优化性能
- VS弹出警告 考虑使用“GetTickCount64”而不是“GetTickCount”。
- 使用GetTickCount64() 所需宏定义:
- 学习源代码:
此代码和网上教程不同,是自己手搓的,在看完教程之后,会进行修改。
感觉本代码槽点:
判断胜负部分的代码不够精简(想着摒弃枚举的办法,但是写下来并不如枚举简单,迅速和整洁)
绘图不够精美,同时在绘制图像部分的代码,并没有做到清除,各个函数之间的调用出现了问题,并没有降低耦合性
自身不足:
对于EasyX库的使用不够熟悉,同时C++其他常用库并未进行相关的拓展,算法方面还有许多不足,仍需努力
字符串编码部分尚未了解,有部分代码中的函数尚且不知道为什么要如此使用
感受:
此游戏逻辑较为简单,但是实际写起来并不容易,在大脑构思好后却发现,写起来时容易写的十分混乱,不断地重复调用一些函数,经验尚且不足,不过好在成品最终是做出来了,效果也和视频中的效果一样,这令我感到十分的满意,同时使用C++写游戏,我感觉能起到不错的锻炼,这种一步一步搭建的感觉我很喜欢。
代码:
1 |
|
窗口句柄
窗口句柄相当于是Windows系统中用于指向窗口对象的指针
EasyX 使用GetHWnd函数获取当前绘图窗口的句柄
1 | //MessageBox( |
窗口渲染缓冲区
1 | cleardevice()//填充画布颜色 默认为黑色 |
绘制画面
确保开启批量绘图
每次绘制画面后会刷新批量绘图的渲染缓冲区
动态延时优化性能
1 | Sleep()休眠 GetTickCount()获取程序自运行开始所用毫秒数 |
VS弹出警告 考虑使用“GetTickCount64”而不是“GetTickCount”。
这是为了方式出现溢出问题
溢出问题:GetTickCount 在系统连续运行约 49 天后会溢出,返回值会重置为零,这可能导致依赖该值的代码出现无限循环等问题。
64 位支持:GetTickCount64 使用 64 位值,能够提供更长时间的计时而不会发生溢出,因此更适合长时间运行的程序。
因此,建议在需要长时间计时的情况下使用 GetTickCount64。
使用GetTickCount64() 所需宏定义:
1 |
学习源代码:
1 |
|
- 本文作者: T Mumu
- 本文链接: http://example.com/2025/08/01/Tic-tac-toe/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!