汉诺塔游戏,VS2019MFC平台开发,此为发行版内含exe文件和源码。可鼠标拖动盘子(不会出现盘子移动轨迹),画面清晰流畅;可连续演示和单步演示(上一步、下一步),可暂停;可记录游戏用时和步数,并排序展示。效果展示见https://blog.csdn.net/qq_44643644/article/details/108433423
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8696 2020-09-04 14:33 Tower_HanoiCDlgPlay.cpp
文件 1693 2020-09-03 18:59 Tower_HanoiCDlgPlay.h
文件 2206 2020-09-03 19:21 Tower_HanoiCDlgRecord.cpp
文件 555 2020-09-03 19:21 Tower_HanoiCDlgRecord.h
文件 1020 2020-09-02 11:19 Tower_HanoiCDlgRule.cpp
文件 466 2020-09-03 19:02 Tower_HanoiCDlgRule.h
文件 7620 2020-09-03 13:22 Tower_HanoiCDlgShow.cpp
文件 1673 2020-09-02 17:31 Tower_HanoiCDlgShow.h
文件 2936 2020-09-05 21:06 Tower_HanoiCInforFile.cpp
文件 780 2020-09-04 21:50 Tower_HanoiCInforFile.h
文件 1559 2020-08-24 13:59 Tower_Hanoiframework.h
文件 1782 2020-09-05 23:10 Tower_HanoiMainFrm.cpp
文件 681 2020-08-24 13:59 Tower_HanoiMainFrm.h
文件 158 2020-08-24 13:59 Tower_Hanoipch.cpp
文件 544 2020-08-24 13:59 Tower_Hanoipch.h
文件 676 2020-08-24 13:59 Tower_Hanoi
esTowerHanoi.rc2
文件 67777 2020-05-30 00:12 Tower_Hanoi
esTower_Hanoi.ico
文件 4710 2020-05-30 00:12 Tower_Hanoi
esTower_HanoiDoc.ico
文件 270398 2020-08-24 14:38 Tower_Hanoi
esxiaojingling.ico
文件 1279 2020-09-04 21:25 Tower_Hanoi
esource.h
文件 147 2020-09-04 22:35 Tower_Hanoistock.txt
文件 299 2020-08-24 13:59 Tower_Hanoi argetver.h
文件 376140 2020-09-05 23:08 Tower_HanoiTowerHanoi.aps
文件 26682 2020-09-05 23:02 Tower_HanoiTowerHanoi.rc
文件 4843 2020-08-24 13:59 Tower_HanoiTower_Hanoi.cpp
文件 2584576 2020-09-05 23:11 Tower_HanoiTower_Hanoi.exe
文件 574 2020-08-24 13:59 Tower_HanoiTower_Hanoi.h
文件 1987998 2020-09-05 23:11 Tower_HanoiTower_Hanoi.iobj
文件 535296 2020-09-05 23:11 Tower_HanoiTower_Hanoi.ipdb
文件 25579520 2020-09-05 23:11 Tower_HanoiTower_Hanoi.pdb
............此处省略14个文件信息
// 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_HanoiCDlgPlay.cpp
文件 1693 2020-09-03 18:59 Tower_HanoiCDlgPlay.h
文件 2206 2020-09-03 19:21 Tower_HanoiCDlgRecord.cpp
文件 555 2020-09-03 19:21 Tower_HanoiCDlgRecord.h
文件 1020 2020-09-02 11:19 Tower_HanoiCDlgRule.cpp
文件 466 2020-09-03 19:02 Tower_HanoiCDlgRule.h
文件 7620 2020-09-03 13:22 Tower_HanoiCDlgShow.cpp
文件 1673 2020-09-02 17:31 Tower_HanoiCDlgShow.h
文件 2936 2020-09-05 21:06 Tower_HanoiCInforFile.cpp
文件 780 2020-09-04 21:50 Tower_HanoiCInforFile.h
文件 1559 2020-08-24 13:59 Tower_Hanoifr
文件 1782 2020-09-05 23:10 Tower_HanoiMainFrm.cpp
文件 681 2020-08-24 13:59 Tower_HanoiMainFrm.h
文件 158 2020-08-24 13:59 Tower_Hanoipch.cpp
文件 544 2020-08-24 13:59 Tower_Hanoipch.h
文件 676 2020-08-24 13:59 Tower_Hanoi
esTowerHanoi.rc2
文件 67777 2020-05-30 00:12 Tower_Hanoi
esTower_Hanoi.ico
文件 4710 2020-05-30 00:12 Tower_Hanoi
esTower_HanoiDoc.ico
文件 270398 2020-08-24 14:38 Tower_Hanoi
esxiaojingling.ico
文件 1279 2020-09-04 21:25 Tower_Hanoi
esource.h
文件 147 2020-09-04 22:35 Tower_Hanoistock.txt
文件 299 2020-08-24 13:59 Tower_Hanoi argetver.h
文件 376140 2020-09-05 23:08 Tower_HanoiTowerHanoi.aps
文件 26682 2020-09-05 23:02 Tower_HanoiTowerHanoi.rc
文件 4843 2020-08-24 13:59 Tower_HanoiTower_Hanoi.cpp
文件 2584576 2020-09-05 23:11 Tower_HanoiTower_Hanoi.exe
文件 574 2020-08-24 13:59 Tower_HanoiTower_Hanoi.h
文件 1987998 2020-09-05 23:11 Tower_HanoiTower_Hanoi.iobj
文件 535296 2020-09-05 23:11 Tower_HanoiTower_Hanoi.ipdb
文件 25579520 2020-09-05 23:11 Tower_HanoiTower_Hanoi.pdb
............此处省略14个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)