资源简介
汉诺塔游戏,VS2019MFC平台开发,此为发行版内含exe文件和源码。可鼠标拖动盘子(不会出现盘子移动轨迹),画面清晰流畅;可连续演示和单步演示(上一步、下一步),可暂停;可记录游戏用时和步数,并排序展示。效果展示见https://blog.csdn.net/qq_44643644/article/details/108433423
代码片段和文件信息
// CDlgPlay.cpp: 实现文件
//z
#include “pch.h“
#include “Tower_Hanoi.h“
#include “CDlgPlay.h“
#include “CDlgShow.h“
#include “afxdialogex.h“
#include “math.h“
#include “CInforFile.h“
// CDlgPlay 对话框
IMPLEMENT_DYNAMIC(CDlgPlay CDialogEx)
CDlgPlay::CDlgPlay(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_DlgPlay pParent)
SumTime(0)
SumStep(0)
{
flag_down = false;
num = -1;
idx = -1;
if_stop = false;
flag_end = false;
}
CDlgPlay::~CDlgPlay()
{
}
void CDlgPlay::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX IDC_COMBO1 m_combo);
DDX_Text(pDX IDC_EDIT2 SumTime);
DDX_Text(pDX IDC_EDIT1 SumStep);
}
BEGIN_MESSAGE_MAP(CDlgPlay CDialogEx)
ON_CBN_SELCHANGE(IDC_COMBO1 &CDlgPlay::OnCbnSelchangeCombo1)
ON_WM_PAINT()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_ERASEBKGND()
ON_BN_CLICKED(IDC_BUTTON1 &CDlgPlay::OnBnClickedButton1)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON2 &CDlgPlay::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3 &CDlgPlay::OnBnClickedButton3)
END_MESSAGE_MAP()
// CDlgPlay 消息处理程序
BOOL CDlgPlay::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
//设置窗口大小和位置
MoveWindow(0 0 800 500);
CenterWindow();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
//下拉框选项被选中
void CDlgPlay::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
num = m_combo.GetCurSel() + 3;
if_stop = false;
flag_down = false;
flag_end = false;
//将上一个计数器停止计时
KillTimer(index);
index = m_combo.GetCurSel();
//每次切换时把时间清零
SumTime = 0;
SumStep = 0;
UpdateData(FALSE);
index++;
if (index == 1)
{
SetTimer(1 1000 NULL);
}
else if (index == 2)
{
SetTimer(2 1000 NULL);
}
else if (index == 3)
{
SetTimer(3 1000 NULL);
}
else if (index == 4)
{
SetTimer(4 1000 NULL);
}
else if (index == 5)
{
SetTimer(5 1000 NULL);
}
//初始化盘子位置信息
for (int i = 0; i < num; ++i)
{
site[i] = 0;//初始情况都在左柱
}
flag_down = false;
InvalidateRect(CRect(150 75 610 335) FALSE);//重绘
}
void CDlgPlay::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialogEx::OnPaint()
ShowGraph(&dc);//绘制图像
}
//绘制图像
void CDlgPlay::ShowGraph(CDC* dc)
{
CRect rc;//获取客户区
GetClientRect(&rc);
CDC pdc;
pdc.CreateCompatibleDC(dc);//创建一个临时显示设备
CBitmap bm;//创建一个临时位图
bm.CreateCompatibleBitmap(dc rc.Width() rc.Height());
pdc.Selectobject(&bm);
//填充底色
pdc.FillSolidRect(rc dc->GetBkColor());
//绘制三根柱子和底面托盘
CPen pen(PS_SOLID 3 RGB(0 0 0));
pdc.Selectobject(&pen);
pdc.MoveTo(150 320);
pdc.LineTo(610 320);
for (int i = 0; i < 3; ++i)
{
pdc.MoveTo(230 + i * 150 95);
pdc.LineTo(230 + i * 150 320);
}
pen.Deleteobject();
//绘制柱子上的盘子
int n[3] = { 000 };//用来记录三根柱子上的盘子数,提供顶部坐标
for (int i =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8696 2020-09-04 14:33 Tower_Hanoi\CDlgPlay.cpp
文件 1693 2020-09-03 18:59 Tower_Hanoi\CDlgPlay.h
文件 2206 2020-09-03 19:21 Tower_Hanoi\CDlgRecord.cpp
文件 555 2020-09-03 19:21 Tower_Hanoi\CDlgRecord.h
文件 1020 2020-09-02 11:19 Tower_Hanoi\CDlgRule.cpp
文件 466 2020-09-03 19:02 Tower_Hanoi\CDlgRule.h
文件 7620 2020-09-03 13:22 Tower_Hanoi\CDlgShow.cpp
文件 1673 2020-09-02 17:31 Tower_Hanoi\CDlgShow.h
文件 2936 2020-09-05 21:06 Tower_Hanoi\CInforFile.cpp
文件 780 2020-09-04 21:50 Tower_Hanoi\CInforFile.h
文件 1559 2020-08-24 13:59 Tower_Hanoi\fr
文件 1782 2020-09-05 23:10 Tower_Hanoi\MainFrm.cpp
文件 681 2020-08-24 13:59 Tower_Hanoi\MainFrm.h
文件 158 2020-08-24 13:59 Tower_Hanoi\pch.cpp
文件 544 2020-08-24 13:59 Tower_Hanoi\pch.h
文件 676 2020-08-24 13:59 Tower_Hanoi\res\TowerHanoi.rc2
文件 67777 2020-05-30 00:12 Tower_Hanoi\res\Tower_Hanoi.ico
文件 4710 2020-05-30 00:12 Tower_Hanoi\res\Tower_HanoiDoc.ico
文件 270398 2020-08-24 14:38 Tower_Hanoi\res\xiaojingling.ico
文件 1279 2020-09-04 21:25 Tower_Hanoi\resource.h
文件 147 2020-09-04 22:35 Tower_Hanoi\stock.txt
文件 299 2020-08-24 13:59 Tower_Hanoi\targetver.h
文件 376140 2020-09-05 23:08 Tower_Hanoi\TowerHanoi.aps
文件 26682 2020-09-05 23:02 Tower_Hanoi\TowerHanoi.rc
文件 4843 2020-08-24 13:59 Tower_Hanoi\Tower_Hanoi.cpp
文件 2584576 2020-09-05 23:11 Tower_Hanoi\Tower_Hanoi.exe
文件 574 2020-08-24 13:59 Tower_Hanoi\Tower_Hanoi.h
文件 1987998 2020-09-05 23:11 Tower_Hanoi\Tower_Hanoi.iobj
文件 535296 2020-09-05 23:11 Tower_Hanoi\Tower_Hanoi.ipdb
文件 25579520 2020-09-05 23:11 Tower_Hanoi\Tower_Hanoi.pdb
............此处省略14个文件信息
- 上一篇:IP地址查询 C++源代码
- 下一篇:DAC Audio3.rar
相关资源
- 参考文献管理系统(PowerBuuilderMySQLM
- C++实现cs模式下文件传输
- [毕业分享] MFC实现数字图像处理软件
- 任务栏托盘图标程序/MFC窗口定位/类似
- MFC实现的排序算法可视化软件
- MFC写的音乐播放器完整版包括歌词显
- MFC皮肤库skin++
- MFC获取主机名,IP地址,MAC地址
- LL(1)文法的实现-mfc-编译原理学习
- windows程序设计大作业 斗地主 mfc
- MFC 在dialog上画坐标
- 源码:MFC按钮重绘-图书管理系统ADO
- MFC图片预览与缩放
- VS2005版MFC备忘录
- XYZ和STL文件MFC显示
- TcpView源代码MFC VS2005
- mfc编写的小区住户管理系统
- 原版的鸡啄米网站的MFC编程入门知识
- 连连看 MFC 连连看 mfc 连连看
- mfc树形控件201037
- MFC_波形显示器
- CMFCOutlookBar
- MFC 五子棋 VS2013
- MFC中点圆的生成算法
- Microsoft Visual C++ 2005 Redistributable Pack
- MFC动态折线图
- MFC信息管理系统
- VS2008 opencv MFC 计算米粒的个数及最大
- mfc 画图直线、圆、椭圆
- mfc实现扫雷194704
评论
共有 条评论