資源簡介
漢諾塔游戲,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? {
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
評論
共有 條評論