⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiludlg.cpp

📁 自制 9格拼图游戏 mfc程序 按钮拼图记录步数 用时 已完成数目 可重玩 退一步 瞎子拼图 记录游戏成绩
💻 CPP
字号:
// JiLuDlg.cpp : implementation file
//

#include "stdafx.h"
#include "box9.h"
#include "JiLuDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include"box9Dlg.h"
/////////////////////////////////////////////////////////////////////////////
// CJiLuDlg dialog


CJiLuDlg::CJiLuDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CJiLuDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CJiLuDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CJiLuDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CJiLuDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CJiLuDlg, CDialog)
	//{{AFX_MSG_MAP(CJiLuDlg)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BUTTON1, OnClear)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CJiLuDlg message handlers

void CJiLuDlg::OnPaint() 
{
	//读取记录数据
	LoadDat();
	CPaintDC dc(this); // device context for painting
	
	CRect rect(30,30,1000,200);
	char out[1024]="";
	for(int i=0;i<m_i;i++){
		char outOneLine[100]="";

		sprintf(outOneLine,"第%d名\t姓名:%-12s步数:%d 时间:%d\n",i+1,m_name[i],m_iJiLu[i],time[i]);

		strcat(out,outOneLine);
	}
	for(;i<5;i++){
		char outOneLine[100]="";
		sprintf(outOneLine,"第%d名\t空缺\n",i+1);
		strcat(out,outOneLine);
	}
	dc.SetBkMode(TRANSPARENT);
	dc.DrawText(out,-1,&rect,DT_EXPANDTABS);
	
}



void CJiLuDlg::OnClear() 
{
	DeleteFile(datfilename);
	Invalidate();
}

void CJiLuDlg::Serialize(CArchive& ar) 
{
	if (ar.IsStoring())
	{	// storing code
		ar<<m_i;
		for(int i=0;i<5;i++)
		{
			ar<<m_name[i]<<m_iJiLu[i]<<time[i];
		}
	}
	else
	{	// loading code
		ar>>m_i;
		for(int i=0;i<5;i++)
		{
			ar>>m_name[i]>>m_iJiLu[i]>>time[i];
		}
	}
}
#include<io.h>
BOOL CJiLuDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	this->SetWindowText(title);
	LoadDat();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
#include"nameinputdlg.h"
void CJiLuDlg::UpdateDat(int step, int time)
{
	LoadDat();
	if(m_i<5 || m_iJiLu[4]>step)
	{
		CNameInputDlg dlg; 
		CString title;
		if(datfilename=="记录.dat")
			title="恭喜你!你打破了普通拼图记录";
		else
			title="恭喜你!你打破了瞎子拼图记录";
		dlg.title=title;
		if(dlg.DoModal()!=IDC_BUTTONNAMEINPUT)
			return;
	}
	for(int i=4;i>=0;i--)
	{		
		
		if(m_iJiLu[i]>=step)
		{
			if(m_iJiLu[i]==step)
				if(this->time[i]<=time)
					continue;
			if(i!=4){
				m_iJiLu[i+1]=m_iJiLu[i];
				m_name[i+1]=m_name[i];
				this->time[i+1]=this->time[i];				
			}
			m_iJiLu[i]=step;
			m_name[i]=m_NewJiLuName;
			this->time[i]=time;
		}
				
	}
	if(m_i<5) m_i++;			
	CFile file(datfilename,CFile::modeCreate|CFile::modeWrite);
 	CArchive ar(&file,CArchive::store);	          //store when win
 	this->Serialize(ar);
}

void CJiLuDlg::LoadDat()
{
	if(_access(datfilename,0)!=0){
		m_i=0;
		for(int i=0;i<5;i++){
			m_iJiLu[i]=0xffff;
			time[i]=0xffff;
		}
	}		
	else{
		CFile file(datfilename,CFile::modeRead);
		CArchive ar(&file,CArchive::load);
		Serialize(ar);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -